#!/usr/bin/perl -T
-
$ENV{PATH}="/usr/local/bin:/usr/bin:/bin";
package IkiWiki;
use vars qw{%config %links %oldlinks %oldpagemtime %renderedfiles %pagesources};
-# Holds global config settings, also used by some modules.
-our %config=( #{{{
- wiki_file_prune_regexp => qr{((^|/).svn/|\.\.|^\.|\/\.|\.html?$)},
- wiki_link_regexp => qr/\[\[([^\s\]]+)\]\]/,
- wiki_file_regexp => qr/(^[-A-Za-z0-9_.:\/+]+$)/,
- verbose => 0,
- wikiname => "wiki",
- default_pageext => ".mdwn",
- cgi => 0,
- svn => 1,
- url => '',
- cgiurl => '',
- historyurl => '',
- diffurl => '',
- anonok => 0,
- rebuild => 0,
- wrapper => undef,
- wrappermode => undef,
- srcdir => undef,
- destdir => undef,
- templatedir => "/usr/share/ikiwiki/templates",
- setup => undef,
- adminuser => undef,
-); #}}}
+sub usage () { #{{{
+ die "usage: ikiwiki [options] source dest\n";
+} #}}}
sub getconfig () { #{{{
if (! exists $ENV{WRAPPED_OPTIONS}) {
+ %config=(
+ wiki_file_prune_regexp => qr{((^|/).svn/|\.\.|^\.|\/\.|\.html?$)},
+ wiki_link_regexp => qr/\[\[([^\s\]]+)\]\]/,
+ wiki_file_regexp => qr/(^[-A-Za-z0-9_.:\/+]+$)/,
+ verbose => 0,
+ wikiname => "wiki",
+ default_pageext => ".mdwn",
+ cgi => 0,
+ svn => 1,
+ url => '',
+ cgiurl => '',
+ historyurl => '',
+ diffurl => '',
+ anonok => 0,
+ rebuild => 0,
+ wrapper => undef,
+ wrappermode => undef,
+ srcdir => undef,
+ destdir => undef,
+ templatedir => "/usr/share/ikiwiki/templates",
+ setup => undef,
+ adminuser => undef,
+ );
+
eval q{use Getopt::Long};
GetOptions(
"setup|s=s" => \$config{setup},
}
} #}}}
-sub checkconfig { #{{{
+sub checkconfig () { #{{{
if ($config{cgi} && ! length $config{url}) {
error("Must specify url to wiki with --url when using --cgi");
}
}
} #}}}
-sub usage { #{{{
- die "usage: ikiwiki [options] source dest\n";
-} #}}}
-
-sub error { #{{{
+sub error ($) { #{{{
if ($config{cgi}) {
print "Content-type: text/html\n\n";
print misctemplate("Error", "<p>Error: @_</p>");
die @_;
} #}}}
+sub possibly_foolish_untaint ($) { #{{{
+ my $tainted=shift;
+ my ($untainted)=$tainted=~/(.*)/;
+ return $untainted;
+} #}}}
+
sub debug ($) { #{{{
return unless $config{verbose};
if (! $config{cgi}) {
}
} #}}}
-sub possibly_foolish_untaint { #{{{
- my $tainted=shift;
- my ($untainted)=$tainted=~/(.*)/;
- return $untainted;
-} #}}}
-
sub basename ($) { #{{{
my $file=shift;
$file=~/\.(png|gif|jpg|jpeg)$/;
} #}}}
-sub htmllink { #{{{
+sub htmllink ($$;$$) { #{{{
my $page=shift;
my $link=shift;
my $noimageinline=shift; # don't turn links into inline html images