aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/conditional.pm
diff options
context:
space:
mode:
authorjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-04-27 07:55:40 +0000
committerjoey <joey@0fa5a96a-9a0e-0410-b3b2-a0fd24251071>2007-04-27 07:55:40 +0000
commitf8a7fb227b59463b37180b1e525c5d19ec0e43cb (patch)
treee5355a6b8c338c48c6b3a81c877426c11692929a /IkiWiki/Plugin/conditional.pm
parent98c287f19ea03d897046d2aae669638741a112fb (diff)
downloadikiwiki-f8a7fb227b59463b37180b1e525c5d19ec0e43cb.tar
ikiwiki-f8a7fb227b59463b37180b1e525c5d19ec0e43cb.tar.gz
* Make pagespec_match on failure return a value that is false, but in a
scalar context, evaluates to a reason why the match failed. * Add testpagespec plugin, which might be useful to see why a pagespec isn't matching something.
Diffstat (limited to 'IkiWiki/Plugin/conditional.pm')
-rw-r--r--IkiWiki/Plugin/conditional.pm18
1 files changed, 11 insertions, 7 deletions
diff --git a/IkiWiki/Plugin/conditional.pm b/IkiWiki/Plugin/conditional.pm
index 29223ace2..58e2b04b9 100644
--- a/IkiWiki/Plugin/conditional.pm
+++ b/IkiWiki/Plugin/conditional.pm
@@ -62,7 +62,8 @@ sub match_enabled ($$;@) { #{{{
my $plugin=shift;
# test if the plugin is enabled
- return UNIVERSAL::can("IkiWiki::Plugin::".$plugin, "import");
+ return 1 if UNIVERSAL::can("IkiWiki::Plugin::".$plugin, "import");
+ return IkiWiki::FailReason->new("$plugin is not enabled");
} #}}}
sub match_sourcepage ($$;@) { #{{{
@@ -70,8 +71,9 @@ sub match_sourcepage ($$;@) { #{{{
my $glob=shift;
my %params=@_;
- return unless exists $params{sourcepage};
- return match_glob($params{sourcepage}, $glob, @_);
+ return IkiWiki::FailReason->new("cannot match sourcepage") unless exists $params{sourcepage};
+ return 1 if match_glob($params{sourcepage}, $glob, @_);
+ return IkiWiki::FailReason->new("sourcepage does not match $glob");
} #}}}
sub match_destpage ($$;@) { #{{{
@@ -79,8 +81,9 @@ sub match_destpage ($$;@) { #{{{
my $glob=shift;
my %params=@_;
- return unless exists $params{destpage};
- return match_glob($params{destpage}, $glob, @_);
+ return IkiWiki::FailReason->new("cannot match destpage") unless exists $params{destpage};
+ return 1 if match_glob($params{destpage}, $glob, @_);
+ return IkiWiki::FailReason->new("destpage does not match $glob");
} #}}}
sub match_included ($$;$) { #{{{
@@ -88,8 +91,9 @@ sub match_included ($$;$) { #{{{
shift;
my %params=@_;
- return unless exists $params{sourcepage} && exists $params{destpage};
- return $params{sourcepage} ne $params{destpage};
+ return IkiWiki::FailReason->new("cannot match included") unless exists $params{sourcepage} && exists $params{destpage};
+ return 1 if $params{sourcepage} ne $params{destpage};
+ return IkiWiki::FailReason->new("page $params{sourcepage} is not included");
} #}}}
1