]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki/Setup/Automator.pm
(no commit message)
[git.ikiwiki.info.git] / IkiWiki / Setup / Automator.pm
index 9da594e991e261e8b36c0bfc2f664be074f3816a..9239974adece99801b4c008f33932ad633755ed9 100644 (file)
@@ -38,6 +38,7 @@ sub sanitize_wikiname ($) {
 
 sub import (@) {
        my $this=shift;
+       $config{setuptype}='Yaml';
        IkiWiki::Setup::merge({@_});
 
        if (! $config{force_overwrite}) {
@@ -71,9 +72,15 @@ sub import (@) {
                }
                elsif ($config{rcs} eq 'bzr') {
                        # TODO
+                       print STDERR "warning: do not know how to set up the bzr_wrapper hook!\n";
                }
                elsif ($config{rcs} eq 'mercurial') {
                        # TODO
+                       print STDERR "warning: do not know how to set up the mercurial_wrapper hook!\n";
+               }
+               elsif ($config{rcs} eq 'tla') {
+                       # TODO
+                       print STDERR "warning: do not know how to set up the tla_wrapper hook!\n";
                }
                elsif ($config{rcs} eq 'cvs') {
                        $config{cvs_wrapper}=$config{repository}."/CVSROOT/post-commit";
@@ -123,9 +130,10 @@ sub import (@) {
                                IkiWiki::run_hooks(checkconfig => sub { shift->() });
                        };
                        if ($@) {
+                               my $err=$@;
                                print STDERR sprintf(gettext("** Disabling plugin %s, since it is failing with this message:"),
                                        $plugin)."\n";
-                               print STDERR "$@\n";
+                               print STDERR "$err\n";
                                push @{$bakconfig{disable_plugins}}, $plugin;
                        }
                }
@@ -146,31 +154,33 @@ sub import (@) {
        foreach my $admin (@{$config{adminuser}}) {
                next if defined IkiWiki::openiduser($admin);
                
-               # Prompt for password w/o echo.
-               my ($password, $password2);
-               system('stty -echo 2>/dev/null');
-               local $|=1;
-               print "\n\nCreating wiki admin $admin ...\n";
-               for (;;) {
-                       print "Choose a password: ";
-                       chomp($password=<STDIN>);
-                       print "\n";
-                       print "Confirm password: ";
-                       chomp($password2=<STDIN>);
-
-                       last if $password2 eq $password;
-
-                       print "Password mismatch.\n\n";
-               }
-               print "\n\n\n";
-               system('stty sane 2>/dev/null');
+               if (! defined IkiWiki::emailuser($admin)) {
+                       # Prompt for password w/o echo.
+                       my ($password, $password2);
+                       system('stty -echo 2>/dev/null');
+                       local $|=1;
+                       print "\n\nCreating wiki admin $admin ...\n";
+                       for (;;) {
+                               print "Choose a password: ";
+                               chomp($password=<STDIN>);
+                               print "\n";
+                               print "Confirm password: ";
+                               chomp($password2=<STDIN>);
+       
+                               last if $password2 eq $password;
+       
+                               print "Password mismatch.\n\n";
+                       }
+                       print "\n\n\n";
+                       system('stty sane 2>/dev/null');
 
-               if (IkiWiki::userinfo_setall($admin, { regdate => time }) &&
-                   IkiWiki::Plugin::passwordauth::setpassword($admin, $password)) {
-                       IkiWiki::userinfo_set($admin, "email", $config{adminemail}) if defined $config{adminemail};
-               }
-               else {
-                       error("problem setting up $admin user");
+                       if (IkiWiki::userinfo_setall($admin, { regdate => time }) &&
+                           IkiWiki::Plugin::passwordauth::setpassword($admin, $password)) {
+                               IkiWiki::userinfo_set($admin, "email", $config{adminemail}) if defined $config{adminemail};
+                       }
+                       else {
+                               error("problem setting up $admin user");
+                       }
                }
        }
        
@@ -198,7 +208,7 @@ sub import (@) {
                        prettydir($config{$key})."\n";
        }
        print "To modify settings, edit ".prettydir($config{dumpsetup})." and then run:\n";
-       print " ikiwiki -setup ".prettydir($config{dumpsetup})."\n";
+       print " ikiwiki --setup ".prettydir($config{dumpsetup})."\n";
        exit 0;
 }