X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/12c5786df4e74c143f24398b8d0028000b61daba..cb1fe44f5d1b7154ee7d21f00fa6ecf4972815a7:/IkiWiki/Setup/Automator.pm?ds=inline

diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm
index ee83a2fcf..88e9f3d24 100644
--- a/IkiWiki/Setup/Automator.pm
+++ b/IkiWiki/Setup/Automator.pm
@@ -28,20 +28,45 @@ sub import (@) { #{{{
 	IkiWiki::Setup::merge({@_});
 
 	# Sanitize this to avoid problimatic directory names.
-	$config{wikiname}=~s/[^-A-Za-z0-9_] //g;
+	$config{wikiname}=~s/[^-A-Za-z0-9_]//g;
 	if (! length $config{wikiname}) {
-		die "you must enter a wikiname\n";
+		error gettext("you must enter a wikiname (that contains alphanumerics)");
 	}
 
 	# Avoid overwriting any existing files.
 	foreach my $key (qw{srcdir destdir repository dumpsetup}) {
 		next unless exists $config{$key};
 		my $add="";
-		while (-e $add.$config{$key}) {
+		my $dir=IkiWiki::dirname($config{$key})."/";
+		my $base=IkiWiki::basename($config{$key});
+		while (-e $dir.$add.$base) {
 			$add=1 if ! $add;
 			$add++;
 		}
-		$config{$key}=$add.$config{$key};
+		$config{$key}=$dir.$add.$base;
+	}
+	
+	# Set up wrapper
+	if ($config{rcs}) {
+		if ($config{rcs} eq 'git') {
+			$config{git_wrapper}=$config{repository}."/hooks/post-update";
+		}
+		elsif ($config{rcs} eq 'svn') {
+			$config{svn_wrapper}=$config{repository}."/hooks/post-commit";
+		}
+		elsif ($config{rcs} eq 'monotone') {
+			$config{mtn_wrapper}=$config{srcdir}."_MTN/ikiwiki-netsync-hook";
+		}
+		elsif ($config{rcs} eq 'bzr') {
+			# TODO
+		}
+		elsif ($config{rcs} eq 'mercurial') {
+			# TODO
+		}
+		else {
+			error sprintf(gettext("unsupported revision control system %s"),
+			       	$config{rcs});
+		}
 	}
 
 	IkiWiki::checkconfig();
@@ -55,26 +80,12 @@ sub import (@) { #{{{
 		my @params=($config{rcs}, $config{srcdir});
 		push @params, $config{repository} if exists $config{repository};
 		if (system("ikiwiki-makerepo", @params) != 0) {
-			die "failed: ikiwiki-makerepo @params";
+			error gettext("failed to set up the repository with ikiwiki-makerepo");
 		}
 	}
 
 	# Generate setup file.
 	require IkiWiki::Setup;
-	if ($config{rcs}) {
-		if ($config{rcs} eq 'git') {
-			$config{git_wrapper}=$config{repository}."/hooks/post-update";
-		}
-		elsif ($config{rcs} eq 'svn') {
-			$config{svn_wrapper}=$config{repository}."/hooks/post-commit";
-		}
-		elsif ($config{rcs} eq 'bzr') {
-			# TODO
-		}
-		elsif ($config{rcs} eq 'mercurial') {
-			# TODO
-		}
-	}
 	IkiWiki::Setup::dump($config{dumpsetup});
 
 	# Build the wiki, but w/o wrappers, so it's not live yet.