From c51b304d90104b4be7d3150821f44273d5be4376 Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kodama.kitenet.net>
Date: Sat, 20 Sep 2008 15:36:32 -0400
Subject: [PATCH] Fix reversion in use of ikiwiki -verbose -setup with a setup
 file that enables syslog.

Setup output is once again output to stdout in this case.

Implemented by stashing the verbose/syslog values set in the setup file,
and using those values in the generated wrappers, but not allowing them to take
effect during the setup operation itself, so that command-line options,
appearing before or after -setup, are honored.

Also, some cleanups to how %config is generated for wrappers, removing some
fields that do not need to be recorded inside the wrapper.
---
 debian/changelog |  3 +++
 ikiwiki.in       | 22 +++++++++++++---------
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index ffa266137..a44b89058 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -7,6 +7,9 @@ ikiwiki (2.65) UNRELEASED; urgency=low
     elements.
   * progress: Display an error if the progress cannot be parsed, and allow
     the percent parameter to only optionally end with "%".
+  * Fix reversion in use of ikiwiki -verbose -setup with a setup file that
+    enables syslog. Setup output is once again output to stdout in this
+    case.
 
  -- Joey Hess <joeyh@debian.org>  Wed, 17 Sep 2008 14:26:56 -0400
 
diff --git a/ikiwiki.in b/ikiwiki.in
index 878d35065..5c2d710b9 100755
--- a/ikiwiki.in
+++ b/ikiwiki.in
@@ -21,7 +21,13 @@ sub getconfig () { #{{{
 		GetOptions(
 			"setup|s=s" => sub {
 				require IkiWiki::Setup;
+				my $verbose=$config{verbose};
+				my $syslog=$config{syslog};
 				IkiWiki::Setup::load($_[1]);
+				$config{setupverbose}=$config{verbose};
+				$config{setupsyslog}=$config{syslog};
+				$config{verbose}=$verbose;
+				$config{syslog}=$syslog;
 				$config{setup}=1;
 			},
 			"dumpsetup|s=s" => \$config{dumpsetup},
@@ -129,15 +135,13 @@ sub main () { #{{{
 			debug(gettext("generating wrappers.."));
 			require IkiWiki::Wrapper;
 			my %origconfig=(%config);
-			my @wrappers=@{$config{wrappers}};
-			delete $config{wrappers};
-			delete $config{genwrappers};
-			foreach my $wrapper (@wrappers) {
-				%config=(%origconfig,
-					rebuild => 0,
-					verbose => undef,
-					%{$wrapper},
-				);
+			foreach my $wrapper (@{$config{wrappers}}) {
+				%config=(%origconfig, %{$wrapper});
+				$config{verbose}=$config{setupverbose}
+					if exists $config{setupverbose};
+				$config{syslog}=$config{setupsyslog}
+					if exists $config{setupsyslog};
+				delete @config{qw(setupsyslog setupverbose wrappers genwrappers rebuild)};
 				checkconfig();
 				if (! $config{cgi} && ! $config{post_commit}) {
 					$config{post_commit}=1;
-- 
2.39.5