X-Git-Url: https://sipb.mit.edu/gitweb.cgi/ikiwiki.git/blobdiff_plain/ac69a979059198a3716d1e177d177e978e1f1785..2885278ebd2e2bfad188a583d7ad5d3c8b7c3a21:/ikiwiki diff --git a/ikiwiki b/ikiwiki index 111ef54fc..d6057c101 100755 --- a/ikiwiki +++ b/ikiwiki @@ -69,11 +69,8 @@ sub error { #{{{ if ($config{cgi}) { print "Content-type: text/html\n\n"; print misctemplate("Error", "

Error: @_

"); - exit 1; - } - else { - die @_; } + die @_; } #}}} sub debug ($) { #{{{ @@ -307,14 +304,14 @@ sub parentlinks ($) { #{{{ my $skip=1; foreach my $dir (reverse split("/", $page)) { if (! $skip) { + $path.="../"; unshift @ret, { url => "$path$dir.html", page => $dir }; } else { $skip=0; } - $path.="../"; } - unshift @ret, { url => $path , page => $config{wikiname} }; + unshift @ret, { url => length $path ? $path : ".", page => $config{wikiname} }; return @ret; } #}}} @@ -364,10 +361,10 @@ sub check_overwrite ($$) { #{{{ my $src=shift; if (! exists $renderedfiles{$src} && -e $dest && ! $config{rebuild}) { - error("$dest exists and was rendered from ". + error("$dest already exists and was rendered from ". join(" ",(grep { $renderedfiles{$_} eq $dest } keys %renderedfiles)). - ", not from $src before not overwriting"); + ", before, so not rendering from $src"); } } #}}} @@ -692,7 +689,7 @@ sub gen_wrapper (@) { #{{{ push @params, "--cgiurl=$config{cgiurl}" if length $config{cgiurl}; push @params, "--historyurl=$config{historyurl}" if length $config{historyurl}; push @params, "--anonok" if $config{anonok}; - my $params=join(" ", map { "\'$_\'" } @params); + my $params=join(" ", @params); my $call=''; foreach my $p ($this, $this, @params) { $call.=qq{"$p", }; @@ -1096,7 +1093,9 @@ sub cgi_editpage ($$) { #{{{ rcs_commit($message); } else { + loadindex(); refresh(); + saveindex(); } # The trailing question mark tries to avoid broken @@ -1152,14 +1151,28 @@ sub cgi () { #{{{ sub setup () { # {{{ my $setup=possibly_foolish_untaint($config{setup}); + delete $config{setup}; open (IN, $setup) || error("read $setup: $!\n"); local $/=undef; my $code=; ($code)=$code=~/(.*)/s; close IN; + + my (%setup); eval $code; error($@) if $@; - print "ikiwiki setup complete\n"; + + gen_wrapper(%config, %setup, %{$setup{cgiwrapper}}) if $setup{cgiwrapper}; + gen_wrapper(%config, %setup, %{$setup{svnwrapper}}) if $setup{svnwrapper}; + + print "$setup{wikiname} setup complete, now forcing a rebuild\n"; + foreach my $c (keys %setup) { + $config{$c}=possibly_foolish_untaint($setup{$c}) + if defined $setup{$c} && ! ref $setup{$c}; + } + $config{rebuild}=1; + refresh(); + saveindex(); exit; } #}}}