X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/c4f3d0554a02eba93d94d4c0914f4afddf85274b..906c64d7d14094cff6fa834e71eaab7c5f7222dd:/IkiWiki/Plugin/websetup.pm?ds=sidebyside diff --git a/IkiWiki/Plugin/websetup.pm b/IkiWiki/Plugin/websetup.pm index a47c29976..9edd22d26 100644 --- a/IkiWiki/Plugin/websetup.pm +++ b/IkiWiki/Plugin/websetup.pm @@ -139,7 +139,7 @@ sub showfields ($$$@) { my $value=$config{$key}; if ($info{safe} && (ref $value eq 'ARRAY' || ref $info{example} eq 'ARRAY')) { - $value=[@{$value}, "", ""]; # blank items for expansion + $value=[(ref $value eq 'ARRAY' ? @{$value} : ""), "", ""]; # blank items for expansion } if ($info{type} eq "string") { @@ -403,6 +403,7 @@ sub showform ($$) { $form->reset(0); # doesn't really make sense here } else { + my $oldsetup=readfile($config{setupfile}); IkiWiki::Setup::dump($config{setupfile}); IkiWiki::saveindex(); @@ -426,16 +427,21 @@ sub showform ($$) { "-refresh", "-wrappers", "-v"); } + close STDERR; + open(STDERR, ">&STDOUT"); my $ret=system(@command); - print "\n
";
+			print "\n<\/pre>";
 			if ($ret != 0) {
 				print '

'. - sprintf(gettext("

Error: %s exited nonzero (%s)"), + sprintf(gettext("Error: %s exited nonzero (%s). Discarding setup changes."), join(" ", @command), $ret). '

'; + open(OUT, ">", $config{setupfile}) || error("$config{setupfile}: $!"); + print OUT $oldsetup; + close OUT; } - print $tail; + print $tail; exit 0; } }