X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/6cf96b581974b3e59af3289196c4687c2416f35c..3aab99fae5f7681154a35a3e75d8e225424e2d8b:/IkiWiki/Setup/Automator.pm diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm index a54b53817..42caf3039 100644 --- a/IkiWiki/Setup/Automator.pm +++ b/IkiWiki/Setup/Automator.pm @@ -9,21 +9,22 @@ use IkiWiki; use IkiWiki::UserInfo; use Term::ReadLine; use File::Path; +use Encode; -sub ask ($$) { #{{{ +sub ask ($$) { my ($question, $default)=@_; my $r=Term::ReadLine->new("ikiwiki"); - $r->readline($question." ", $default); -} #}}} + $r->readline(encode_utf8($question)." ", $default); +} -sub prettydir ($) { #{{{ +sub prettydir ($) { my $dir=shift; $dir=~s/^\Q$ENV{HOME}\E\//~\//; return $dir; -} #}}} +} -sub import (@) { #{{{ +sub import (@) { my $this=shift; IkiWiki::Setup::merge({@_}); @@ -37,11 +38,13 @@ sub import (@) { #{{{ 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 @@ -52,6 +55,9 @@ sub import (@) { #{{{ 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 } @@ -68,8 +74,18 @@ sub import (@) { #{{{ print "\n\nSetting up $config{wikiname} ...\n"; - # Set up the repository. + # Set up the srcdir. mkpath($config{srcdir}) || die "mkdir $config{srcdir}: $!"; + # Copy in example wiki. + if (exists $config{example}) { + # cp -R is POSIX + # Another reason not to use -a is so that pages such as blog + # posts will not have old creation dates on this new wiki. + system("cp -R $IkiWiki::installdir/share/ikiwiki/examples/$config{example}/* $config{srcdir}"); + delete $config{example}; + } + + # Set up the repository. delete $config{repository} if ! $config{rcs} || $config{rcs}=~/bzr|mercurial/; if ($config{rcs}) { my @params=($config{rcs}, $config{srcdir}); @@ -137,6 +153,6 @@ sub import (@) { #{{{ print "To modify settings, edit ".prettydir($config{dumpsetup})." and then run:\n"; print " ikiwiki -setup ".prettydir($config{dumpsetup})."\n"; exit 0; -} #}}} +} 1