]> sipb.mit.edu Git - ikiwiki.git/blobdiff - IkiWiki/Render.pm
Added a rescan hook.
[ikiwiki.git] / IkiWiki / Render.pm
index c6167b437fde4de7d19c2de1e48cc5b4e04b9f40..5ce802317f68d3da036aa1894708f97f92152186 100644 (file)
@@ -183,6 +183,14 @@ sub scan ($) {
 
                # Preprocess in scan-only mode.
                preprocess($page, $page, $content, 1);
+
+               run_hooks(rescan => sub {
+                       shift->(
+                               page => $page,
+                               content => $content,
+                       );
+               });
+
        }
        else {
                will_render($file, $file, 1);
@@ -335,21 +343,22 @@ sub find_src_files () {
                }
        };
 
-       chdir($config{srcdir}) || die "chdir: $!";
+       chdir($config{srcdir}) || die "chdir $config{srcdir}: $!";
        find({
                no_chdir => 1,
                wanted => $helper,
        }, '.');
-       chdir($origdir) || die "chdir: $!";
+       chdir($origdir) || die "chdir $origdir: $!";
 
        $underlay=1;
        foreach (@{$config{underlaydirs}}, $config{underlaydir}) {
-               chdir($_) || die "chdir: $!";
-               find({
-                       no_chdir => 1,
-                       wanted => $helper,
-               }, '.');
-               chdir($origdir) || die "chdir: $!";
+               if (chdir($_)) {
+                       find({
+                               no_chdir => 1,
+                               wanted => $helper,
+                       }, '.');
+                       chdir($origdir) || die "chdir: $!";
+               }
        };
 
        return \@files, \%pages;
@@ -373,7 +382,7 @@ sub find_new_files ($) {
                        }
 
                        eval {
-                               my $ctime=rcs_getctime("$config{srcdir}/$file");
+                               my $ctime=rcs_getctime($file);
                                if ($ctime > 0) {
                                        $pagectime{$page}=$ctime;
                                }
@@ -383,7 +392,7 @@ sub find_new_files ($) {
                        }
                        my $mtime;
                        eval {
-                               $mtime=rcs_getmtime("$config{srcdir}/$file");
+                               $mtime=rcs_getmtime($file);
                        };
                        if ($@) {
                                print STDERR $@;