X-Git-Url: http://git.vanrenterghem.biz/git.ikiwiki.info.git/blobdiff_plain/d6f9d7743167cb4b58f16f1e371585f09dc15a0b..HEAD:/ikiwiki.in diff --git a/ikiwiki.in b/ikiwiki.in index aa3337938..30df628b2 100755 --- a/ikiwiki.in +++ b/ikiwiki.in @@ -1,17 +1,15 @@ #!/usr/bin/perl -$ENV{PATH}="/usr/local/bin:/usr/bin:/bin"; -delete @ENV{qw{IFS CDPATH ENV BASH_ENV}}; - package IkiWiki; +no lib '.'; use warnings; use strict; -use lib '.'; # For use in nonstandard directory, munged by Makefile. +use FindBin; use lib $FindBin::Bin; # For use in nonstandard directory, munged by Makefile. use IkiWiki 3.00; sub usage () { die gettext("usage: ikiwiki [options] source dest"), "\n", - gettext(" ikiwiki --setup configfile"), "\n"; + gettext(" ikiwiki --setup my.setup [options]"), "\n"; } sub setup (@) { @@ -111,11 +109,9 @@ sub getconfig () { if (! defined $var || ! defined $val) { die gettext("usage: --set-yaml var=value"), "\n"; } - eval q{use YAML::Any}; - eval q{use YAML} if $@; + eval q{use YAML::XS; use Encode}; die $@ if $@; - eval q{$YAML::Syck::ImplicitUnicode=1}; - $config{$var}=Load($val."\n"); + $config{$var}=Load(encode_utf8($val)."\n"); }, "version" => sub { print "ikiwiki version $IkiWiki::version\n"; @@ -163,24 +159,8 @@ sub main () { ! $config{clean} && ((! $config{refresh} && ! $config{post_commit}) || $config{genwrappers})) { - debug(gettext("generating wrappers..")); require IkiWiki::Wrapper; - my %origconfig=(%config); - 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{test_receive}) { - $config{post_commit}=1; - } - gen_wrapper(); - } - %config=(%origconfig); + gen_wrappers(); } # setup implies a wiki rebuild by default @@ -199,6 +179,7 @@ sub main () { $config{srcdir}="" if ! defined $config{srcdir}; $config{destdir}="" if ! defined $config{destdir}; $config{syslog}=1 if $config{setupsyslog}; + checkconfig(); require IkiWiki::Setup; IkiWiki::Setup::dump($config{dumpsetup}); }