summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
23b91e6)
This makes the documentation read more sensibly, and matches how we
handle underlaydirs and underlaydir.
safe => 0, # paranoia
rebuild => 0,
},
safe => 0, # paranoia
rebuild => 0,
},
+ libdirs => {
+ type => "string",
+ default => [],
+ example => ["$ENV{HOME}/.local/share/ikiwiki"],
+ description => "extra library and plugin directories",
+ advanced => 1,
+ safe => 0, # directory
+ rebuild => 0,
+ },
libdir => {
type => "string",
default => "",
example => "$ENV{HOME}/.ikiwiki/",
libdir => {
type => "string",
default => "",
example => "$ENV{HOME}/.ikiwiki/",
- description => "extra library and plugin directorys. Can be either a string (for backward compatibility) or a list of strings.",
+ description => "extra library and plugin directory (searched after libdirs)",
advanced => 1,
safe => 0, # directory
rebuild => 0,
advanced => 1,
safe => 0, # directory
rebuild => 0,
- my $libdirs;
- if (! ref $config{libdir}) {
- if (length $config{libdir}) {
- $libdirs = [$config{libdir}];
- } else {
- $libdirs = [];
- }
- } else {
- $libdirs = $config{libdir};
+ my @libdirs = @{$config{libdirs}};
+ if (length $config{libdir}) {
+ push @libdirs, $config{libdir};
- if (defined $config{libdir} && length $config{libdir}) {
- foreach my $dir (getlibdirs()) {
- unshift @INC, possibly_foolish_untaint($dir);
- }
+ foreach my $dir (getlibdirs()) {
+ unshift @INC, possibly_foolish_untaint($dir);
}
foreach my $plugin (@{$config{default_plugins}}, @{$config{add_plugins}}) {
}
foreach my $plugin (@{$config{default_plugins}}, @{$config{add_plugins}}) {
return if ! $force && grep { $_ eq $plugin} @{$config{disable_plugins}};
foreach my $possiblytainteddir (getlibdirs(), "$installdir/lib/ikiwiki") {
return if ! $force && grep { $_ eq $plugin} @{$config{disable_plugins}};
foreach my $possiblytainteddir (getlibdirs(), "$installdir/lib/ikiwiki") {
- my $dir = defined $possiblytainteddir ? possibly_foolish_untaint($possiblytainteddir) : undef;
+ my $dir = possibly_foolish_untaint($possiblytainteddir);
if (defined $dir && -x "$dir/plugins/$plugin") {
eval { require IkiWiki::Plugin::external };
if ($@) {
if (defined $dir && -x "$dir/plugins/$plugin") {
eval { require IkiWiki::Plugin::external };
if ($@) {
`/usr/local/lib/site_perl` for modules, you can locally install ikiwiki
plugins to `/usr/local/lib/site_perl/IkiWiki/Plugin`
`/usr/local/lib/site_perl` for modules, you can locally install ikiwiki
plugins to `/usr/local/lib/site_perl/IkiWiki/Plugin`
-You can use the `libdir` configuration option to add directories to the
+You can use the `libdirs` and/or `libdir` configuration options to add
+directories to the
search path. For example, if you set `libdir` to `/home/you/.ikiwiki/`,
search path. For example, if you set `libdir` to `/home/you/.ikiwiki/`,
-then ikiwiki will look for plugins in `/home/you/.ikiwiki/IkiWiki/Plugin`. This
-configuration option can be either a string (for backward compatibility) or a
-list of strings (to add several directories to the search path).
+then ikiwiki will look for plugins in `/home/you/.ikiwiki/IkiWiki/Plugin`.
Ikiwiki also supports plugins that are external programs. These are
typically written in some other language than perl. Ikiwiki searches for
Ikiwiki also supports plugins that are external programs. These are
typically written in some other language than perl. Ikiwiki searches for
-these in `/usr/lib/ikiwiki/plugins` by default. If `libdir` is set, it will
-also look under that directory, for example in `/home/you/.ikiwiki/plugins`.
+these in `/usr/lib/ikiwiki/plugins` by default. If `libdirs` or `libdir` are
+set, it will also look under those directories, for example in
+`/home/you/.ikiwiki/plugins`.
Note that this type of plugin has to be executable for ikiwiki to use it.
Note that this type of plugin has to be executable for ikiwiki to use it.