aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki.pm
diff options
context:
space:
mode:
authorJoey Hess <joey@kitenet.net>2010-09-27 15:47:14 -0400
committerJoey Hess <joey@kitenet.net>2010-09-27 15:58:01 -0400
commite22b18aabcb46e3c0eafeb466b51bb3eb18cf1e1 (patch)
tree08346e3dfa8aea5beb04aea2648a89c9fcbeedb6 /IkiWiki.pm
parent00595b62be624b2b105a7b137d0502d235e55f87 (diff)
downloadikiwiki-e22b18aabcb46e3c0eafeb466b51bb3eb18cf1e1.tar
ikiwiki-e22b18aabcb46e3c0eafeb466b51bb3eb18cf1e1.tar.gz
template_depends: throw nice error message when template cannot be found
plovs reported a crash when templates were not installed properly, with a non-useful error about the template object not being defined. I've audited all uses of template_depends(), and template(), and it makes sense for them to throw an error if the template cannot be found. All code with a user-supplied template catches errors already, to handle template parse failures. It did not make sense for template_file to throw errors, as some code uses it to probe if a template file is available.
Diffstat (limited to 'IkiWiki.pm')
-rw-r--r--IkiWiki.pm8
1 files changed, 5 insertions, 3 deletions
diff --git a/IkiWiki.pm b/IkiWiki.pm
index 6da281999..66ae86809 100644
--- a/IkiWiki.pm
+++ b/IkiWiki.pm
@@ -1769,12 +1769,14 @@ sub template_depends ($$;@) {
my $page=shift;
my ($filename, $tpage, $untrusted)=template_file($name);
+ if (! defined $filename) {
+ error(sprintf(gettext("template %s not found"), $name))
+ }
+
if (defined $page && defined $tpage) {
add_depends($page, $tpage);
}
-
- return unless defined $filename;
-
+
my @opts=(
filter => sub {
my $text_ref = shift;