X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/4643233c180044bce1b588751a378ec361b43c54..e6992480e2e0cf965650f84aa97e01fe0fa71544:/IkiWiki/Setup/Automator.pm diff --git a/IkiWiki/Setup/Automator.pm b/IkiWiki/Setup/Automator.pm index 724583761..b7798fcec 100644 --- a/IkiWiki/Setup/Automator.pm +++ b/IkiWiki/Setup/Automator.pm @@ -10,20 +10,20 @@ use IkiWiki::UserInfo; use Term::ReadLine; use File::Path; -sub ask ($$) { #{{{ +sub ask ($$) { my ($question, $default)=@_; my $r=Term::ReadLine->new("ikiwiki"); $r->readline($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 +37,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 @@ -71,8 +73,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}); @@ -140,6 +152,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