aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Render.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-06-15 22:56:06 -0400
committerJoey Hess <joey@kitenet.net>2010-06-15 22:56:06 -0400
commit5f33532468fbd52b15ab599a3198749efcfc7710 (patch)
tree0fd97813bc3bfe4bc7ad75767ee0ba1382b82437 /IkiWiki/Render.pm
parentf7d4904fee5fcc380196d9c6825676040270270f (diff)
downloadikiwiki-5f33532468fbd52b15ab599a3198749efcfc7710.tar
ikiwiki-5f33532468fbd52b15ab599a3198749efcfc7710.tar.gz
Make --gettime be honored after initial setup.
Bugfix in passing: New files not treated as such when no rcs is used.
Diffstat (limited to 'IkiWiki/Render.pm')
-rw-r--r--IkiWiki/Render.pm58
1 files changed, 31 insertions, 27 deletions
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index 740bb52b0..c6167b437 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -300,6 +300,7 @@ sub find_src_files () {
my ($page, $underlay);
my $helper=sub {
my $file=decode_utf8($_);
+
return if -l $file || -d _;
$file=~s/^\.\///;
return if ! length $file;
@@ -363,6 +364,35 @@ sub find_new_files ($) {
foreach my $file (@$files) {
my $page=pagename($file);
+
+ if ($config{rcs} && $config{gettime} &&
+ -e "$config{srcdir}/$file") {
+ if (! $times_noted) {
+ debug(sprintf(gettext("querying %s for file creation and modification times.."), $config{rcs}));
+ $times_noted=1;
+ }
+
+ eval {
+ my $ctime=rcs_getctime("$config{srcdir}/$file");
+ if ($ctime > 0) {
+ $pagectime{$page}=$ctime;
+ }
+ };
+ if ($@) {
+ print STDERR $@;
+ }
+ my $mtime;
+ eval {
+ $mtime=rcs_getmtime("$config{srcdir}/$file");
+ };
+ if ($@) {
+ print STDERR $@;
+ }
+ elsif ($mtime > 0) {
+ utime($mtime, $mtime, "$config{srcdir}/$file");
+ }
+ }
+
if (exists $pagesources{$page} && $pagesources{$page} ne $file) {
# the page has changed its type
$forcerebuild{$page}=1;
@@ -372,34 +402,8 @@ sub find_new_files ($) {
if (isinternal($page)) {
push @internal_new, $file;
}
- elsif ($config{rcs}) {
+ else {
push @new, $file;
- if ($config{gettime} && -e "$config{srcdir}/$file") {
- if (! $times_noted) {
- debug(sprintf(gettext("querying %s for file creation and modification times.."), $config{rcs}));
- $times_noted=1;
- }
-
- eval {
- my $ctime=rcs_getctime("$config{srcdir}/$file");
- if ($ctime > 0) {
- $pagectime{$page}=$ctime;
- }
- };
- if ($@) {
- print STDERR $@;
- }
- my $mtime;
- eval {
- $mtime=rcs_getmtime("$config{srcdir}/$file");
- };
- if ($@) {
- print STDERR $@;
- }
- elsif ($mtime > 0) {
- utime($mtime, $mtime, "$config{srcdir}/$file");
- }
- }
}
$pagecase{lc $page}=$page;
if (! exists $pagectime{$page}) {