1 It would be useful to have
3 libdir=>[ qw{libdir1 libdir2 libdir3} ]
5 as a setup option. I have a couple of different directories that e.g. come from different git repos, so merging them is a bit messy.
7 I think the change is a one-liner, but I put this here for discussion before attempting a patch. If some more confident person wants to have a go, feel free.
11 > I would like this feature too, for the very same reasons.
13 > To preserve backward compatibility, I tried to implement it in the following way: if `libdir` is a string, it is (as it is right now), a directory in which plugins can be searched; if `libdir` is an array of strings, it is a list of libdirs. The ideal place to put it in would be in subroutine [checkconfig](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=IkiWiki.pm;hb=56f8223f9594ae687099dada0c138d669a6f931f#l569). However, plugins are loaded (and option `libdir` is used) in subroutine [loadplugins](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=IkiWiki.pm;hb=56f8223f9594ae687099dada0c138d669a6f931f#l713), which is called [just before `checkconfig`](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=ikiwiki.in;hb=729991564ec7e1116fc023c51e73b47af8b6fce7#l143).
15 > A solution would be to check `libdir` (and turn it into a list if necessary) somewhere in subroutine [getconfig](http://source.ikiwiki.branchable.com/?p=source.git;a=blob;f=ikiwiki.in;hb=729991564ec7e1116fc023c51e73b47af8b6fce7#l26), but I do not know where to put it not to make it look like a bad hackā¦
17 > Any idea about the best place to preprocess `libdir`? Or any better idea to implement this?
21 >> Modifying `getconfig` is not a valid solution, because IkiWiki.pm is also imported by
22 >> [[ikiwiki-transition]], [[ikiwiki-calendar]], the regression tests, etc.
24 >> The way I would personally do it is to have a new non-exported function `getlibdirs`
25 >> or something, have it do something like this:
27 >> if (! ref $config{libdir}) {
28 >> if (length $config{libdir}) {
29 >> $config{libdir} = [$config{libdir}];
31 >> $config{libdir} = [];
34 >> return @{$config{libdir}};
36 >> and replace all uses of $config{libdir} with it.