Add a function add_autofiles().
authorDavid Riebenbauer <davrieb@liegesta.at>
Sun, 31 Jan 2010 01:31:12 +0000 (02:31 +0100)
committerDavid Riebenbauer <davrieb@liegesta.at>
Tue, 2 Feb 2010 13:04:28 +0000 (14:04 +0100)
The objective is to provide a sensible way to let plugins add files during the
"scan stage" of the build.

Currently does a little verification and adds the file to the global array
@add_autofiles.

IkiWiki.pm

index cb1c46a68c76d51f52730372c370ea22ee8dc97b..115c512d3eba06395390dce71734b49e3eb94c37 100644 (file)
@@ -14,7 +14,7 @@ use open qw{:utf8 :std};
 use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
            %pagestate %wikistate %renderedfiles %oldrenderedfiles
            %pagesources %destsources %depends %depends_simple %hooks
 use vars qw{%config %links %oldlinks %pagemtime %pagectime %pagecase
            %pagestate %wikistate %renderedfiles %oldrenderedfiles
            %pagesources %destsources %depends %depends_simple %hooks
-           %forcerebuild %loaded_plugins};
+           %forcerebuild %loaded_plugins @autofiles};
 
 use Exporter q{import};
 our @EXPORT = qw(hook debug error template htmlpage deptype
 
 use Exporter q{import};
 our @EXPORT = qw(hook debug error template htmlpage deptype
@@ -1898,6 +1898,14 @@ sub add_link ($$) {
                unless grep { $_ eq $link } @{$links{$page}};
 }
 
                unless grep { $_ eq $link } @{$links{$page}};
 }
 
+sub add_autofile ($) {
+       my $addfile=shift;
+       my ($file,$page) = verify_src_file($addfile,$config{srcdir});
+       if ($page) {
+               push @autofiles, $file;
+       }
+}
+
 sub pagespec_translate ($) {
        my $spec=shift;
 
 sub pagespec_translate ($) {
        my $spec=shift;