save to real setup file, and rebuild/refresh

master
Joey Hess 2008-08-05 20:11:56 -04:00
parent 9802fbee40
commit bf8558f346
1 changed files with 33 additions and 8 deletions

View File

@ -236,6 +236,10 @@ sub showform ($$) { #{{{
error(gettext("you are not logged in as an admin"));
}
if (! exists $config{setupfile}) {
error(gettext("setup file for this wiki is not known"));
}
eval q{use CGI::FormBuilder};
error($@) if $@;
@ -399,19 +403,40 @@ sub showform ($$) { #{{{
$form->reset(0); # doesn't really make sense here
}
else {
$form->field(name => "rebuild_asked", type => "hidden",
value => 0, force => 1);
# TODO save to real path
IkiWiki::Setup::dump("/tmp/s");
$form->text(gettext("Setup saved."));
IkiWiki::Setup::dump($config{setupfile});
IkiWiki::saveindex();
IkiWiki::unlockwiki();
# Print the top part of a standard misctemplate,
# then show the rebuild or refresh.
my $divider="xxx";
my $html=IkiWiki::misctemplate("setup", $divider);
IkiWiki::printheader($session);
my ($head, $tail)=split($divider, $html, 2);
print $head."<pre>\n";
my @command;
if ($form->submitted eq 'Rebuild Wiki') {
# TODO rebuild
@command=("ikiwiki", "-setup", $config{setupfile},
"-rebuild", "-v");
}
else {
# TODO refresh wiki and wrappers
@command=("ikiwiki", "-setup", $config{setupfile},
"-refresh", "-wrappers", "-v");
}
my $ret=system(@command);
print "\n<pre>";
if ($ret != 0) {
print '<p class="error">'.
sprintf(gettext("<p class=\"error\">Error: %s exited nonzero (%s)"),
join(" ", @command), $ret).
'</p>';
}
print $tail;
exit 0;
}
}