=item lib
-The "lib" parameter can specify some shell code that will be run before each
-command, this can be a useful way to define shell functions for other commands
-to use.
+The "lib" parameter can specify some shell code that will be run
+before each command, this can be a useful way to define shell
+functions for other commands to use. Unlike most other parameters,
+this can be specified multiple times, in which case the chunks of
+shell code are accumulatively concatenated together. This is
+particularly useful because it allows the user to build a library of
+shell functions defined in the [DEFAULT] section scattered across
+various mr modules (files referenced by an C<include> directive).
=item fixups
override these VCS specific actions. To add a new version control system,
you can just add VCS specific actions for it.
+As with the C<lib> parameter, if a parameter is suffixed with
+C<_append>, its value is concatenated to the existing value of the
+parameter for that config block, rather than overwriting it. In this
+way, actions such as C<fixup> can be constructed accumulatively.
+
=head1 UNTRUSTED MRCONFIG FILES
Since mrconfig files can contain arbitrary shell commands, they can do
if ($section eq 'ALIAS') {
$alias{$parameter}=$value;
}
- elsif ($parameter eq 'lib') {
- $config{$dir}{$section}{lib}.=$value."\n";
+ elsif ($parameter eq 'lib' or $parameter =~ s/_append$//) {
+ $config{$dir}{$section}{$parameter}.="\n".$value."\n";
}
else {
$config{$dir}{$section}{$parameter}=$value;
right = echo "Not found."
# vim:sw=8:sts=0:ts=8:noet
+# Local variables:
+# indent-tabs-mode: t
+# cperl-indent-level: 8
+# End: