]> git.vanrenterghem.biz Git - git.ikiwiki.info.git/blobdiff - IkiWiki.pm
web commit by Bug
[git.ikiwiki.info.git] / IkiWiki.pm
index 31228883f3cdd83945b34b611902f17fb0c7de02..9a7b4fe911a284f7a11dfc19060ffbddef2b2401 100644 (file)
@@ -7,7 +7,7 @@ use File::Spec;
 use HTML::Template;
 
 use vars qw{%config %links %oldlinks %oldpagemtime %pagectime
-            %renderedfiles %pagesources %depends %plugins};
+            %renderedfiles %pagesources %depends %hooks};
 
 sub checkconfig () { #{{{
        if ($config{cgi} && ! length $config{url}) {
@@ -23,13 +23,14 @@ sub checkconfig () { #{{{
        $config{wikistatedir}="$config{srcdir}/.ikiwiki"
                unless exists $config{wikistatedir};
        
-       if ($config{svn}) {
-               require IkiWiki::Rcs::SVN;
-               $config{rcs}=1;
+       if ($config{rcs}) {
+               eval qq{require IkiWiki::Rcs::$config{rcs}};
+               if ($@) {
+                       error("Failed to load RCS module IkiWiki::Rcs::$config{rcs}: $@");
+               }
        }
        else {
                require IkiWiki::Rcs::Stub;
-               $config{rcs}=0;
        }
 
        foreach my $plugin (@{$config{plugin}}) {
@@ -386,12 +387,14 @@ sub globlist_match ($$) { #{{{
        return 0;
 } #}}}
 
-sub register_plugin ($$$) { # {{{
-       my $type=shift;
-       my $command=shift;
-       my $function=shift;
+sub hook (@) { # {{{
+       my %param=@_;
+       
+       if (! exists $param{type} || ! ref $param{call} || ! exists $param{id}) {
+               error "hook requires type, call, and id parameters";
+       }
        
-       $plugins{$type}{$command}=$function;
+       $hooks{$param{type}}{$param{id}}=\%param;
 } # }}}
 
 1