summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-06-17 16:54:03 -0400
committerJoey Hess <joey@kitenet.net>2010-06-17 16:54:03 -0400
commitcb4b99929757f970d5ae697f0d09514ad624ed46 (patch)
tree65c7d2b8473204302398f68e279a2e8e96bcc58b
parentf70bc8184ace2cf10687daedf2b7176f32ef8a97 (diff)
avoid dying if cannot chdir to an underlaydir
-rw-r--r--IkiWiki/Plugin/autoindex.pm4
-rw-r--r--IkiWiki/Plugin/comments.pm4
-rw-r--r--IkiWiki/Render.pm17
3 files changed, 13 insertions, 12 deletions
diff --git a/IkiWiki/Plugin/autoindex.pm b/IkiWiki/Plugin/autoindex.pm
index 5e8a9e0a3..c3eb53300 100644
--- a/IkiWiki/Plugin/autoindex.pm
+++ b/IkiWiki/Plugin/autoindex.pm
@@ -39,7 +39,7 @@ sub refresh () {
my (%pages, %dirs);
foreach my $dir ($config{srcdir}, @{$config{underlaydirs}}, $config{underlaydir}) {
- chdir($dir) || die "chdir: $!";
+ chdir($dir) || next;
find({
no_chdir => 1,
@@ -64,7 +64,7 @@ sub refresh () {
}
}, '.');
- chdir($origdir) || die "chdir: $!";
+ chdir($origdir) || die "chdir $origdir: $!";
}
my %deleted;
diff --git a/IkiWiki/Plugin/comments.pm b/IkiWiki/Plugin/comments.pm
index 17cd99c3b..d1558001a 100644
--- a/IkiWiki/Plugin/comments.pm
+++ b/IkiWiki/Plugin/comments.pm
@@ -669,7 +669,7 @@ sub comments_pending () {
my $extension=shift;
return unless -d $dir;
- chdir($dir) || die "chdir: $!";
+ chdir($dir) || die "chdir $dir: $!";
find({
no_chdir => 1,
@@ -686,7 +686,7 @@ sub comments_pending () {
}
}, ".");
- chdir($origdir) || die "chdir: $!";
+ chdir($origdir) || die "chdir $origdir: $!";
};
$find_comments->($config{srcdir}, "._comment_pending");
diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm
index c6167b437..aae1f90b0 100644
--- a/IkiWiki/Render.pm
+++ b/IkiWiki/Render.pm
@@ -335,21 +335,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;