diff options
author | Joey Hess <joey@kitenet.net> | 2010-07-08 14:01:52 -0400 |
---|---|---|
committer | Joey Hess <joey@kitenet.net> | 2010-07-08 14:05:39 -0400 |
commit | 7dbad39bbe93ebcc05f278965906fd1c77d2bc34 (patch) | |
tree | 7ea21efa8dfb879e648f8cd45bf9b17597c50ebd /ikiwiki.in | |
parent | d4c11466bad0e0aa3ac3c6f0bfc7577633d0d744 (diff) | |
download | ikiwiki-7dbad39bbe93ebcc05f278965906fd1c77d2bc34.tar ikiwiki-7dbad39bbe93ebcc05f278965906fd1c77d2bc34.tar.gz |
Add --changesetup mode that allows easily changing options in a setup file.
Diffstat (limited to 'ikiwiki.in')
-rwxr-xr-x | ikiwiki.in | 38 |
1 files changed, 26 insertions, 12 deletions
diff --git a/ikiwiki.in b/ikiwiki.in index ac43044df..aa3337938 100755 --- a/ikiwiki.in +++ b/ikiwiki.in @@ -14,24 +14,32 @@ sub usage () { gettext(" ikiwiki --setup configfile"), "\n"; } +sub setup (@) { + 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{setupverbose}; + $config{syslog}=$syslog; + $config{setup}=1; +} + sub getconfig () { if (! exists $ENV{WRAPPED_OPTIONS}) { %config=defaultconfig(); eval q{use Getopt::Long}; Getopt::Long::Configure('pass_through'); 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{setupverbose}; - $config{syslog}=$syslog; - $config{setup}=1; - }, + "setup|s=s" => \&setup, "dumpsetup|s=s" => \$config{dumpsetup}, + "changesetup|s=s" => sub { + $config{changesetup}=$_[1]; + $config{genwrappers}=1; + $config{refresh}=1; + setup(@_); + }, "wikiname=s" => \$config{wikiname}, "verbose|v!" => \$config{verbose}, "syslog!" => \$config{syslog}, @@ -85,7 +93,8 @@ sub getconfig () { $config{wrappermode}=possibly_foolish_untaint($_[1]) }, "plugin=s@" => sub { - push @{$config{add_plugins}}, $_[1]; + push @{$config{add_plugins}}, $_[1] + unless grep { $_ eq $_[1] } @{$config{add_plugins}}; }, "disable-plugin=s@" => sub { push @{$config{disable_plugins}}, $_[1]; @@ -181,6 +190,11 @@ sub main () { } } + if ($config{changesetup}) { + require IkiWiki::Setup; + IkiWiki::Setup::dump($config{changesetup}); + } + if ($config{dumpsetup}) { $config{srcdir}="" if ! defined $config{srcdir}; $config{destdir}="" if ! defined $config{destdir}; |