2012-03-25 17:59:14 +02:00
|
|
|
package Gitolite::Triggers;
|
|
|
|
|
|
|
|
# load and run triggered modules
|
|
|
|
# ----------------------------------------------------------------------
|
|
|
|
|
|
|
|
#<<<
|
|
|
|
@EXPORT = qw(
|
|
|
|
);
|
|
|
|
#>>>
|
|
|
|
use Exporter 'import';
|
|
|
|
|
|
|
|
use Gitolite::Rc;
|
|
|
|
use Gitolite::Common;
|
|
|
|
|
|
|
|
use strict;
|
|
|
|
use warnings;
|
|
|
|
|
|
|
|
# ----------------------------------------------------------------------
|
|
|
|
|
|
|
|
sub run {
|
2012-03-30 02:41:06 +02:00
|
|
|
my ( $module, $sub, @args ) = @_;
|
2012-03-25 17:59:14 +02:00
|
|
|
$module = "Gitolite::Triggers::$module" if $module !~ /^Gitolite::/;
|
|
|
|
|
|
|
|
eval "require $module";
|
2012-03-29 23:40:55 +02:00
|
|
|
_die "$@" if $@;
|
2012-03-25 17:59:14 +02:00
|
|
|
my $subref;
|
|
|
|
eval "\$subref = \\\&$module" . "::" . "$sub";
|
|
|
|
_die "module '$module' does not exist or does not have sub '$sub'" unless ref($subref) eq 'CODE';
|
|
|
|
|
|
|
|
$subref->(@args);
|
|
|
|
}
|
|
|
|
|
|
|
|
1;
|