aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Plugin/cvs.pm
diff options
context:
space:
mode:
authorAmitai Schlair <schmonz@magnetic-babysitter.Ativa>2009-09-09 21:58:42 -0400
committerAmitai Schlair <schmonz@magnetic-babysitter.Ativa>2009-09-09 21:58:42 -0400
commitaafd267ee099ddb8ff4129a0e4d46964be866f6d (patch)
tree3319823bc1948e15d22d3eee29f87ec8d3fd86dd /IkiWiki/Plugin/cvs.pm
parent5f44dd8e7762827753c02dcd78d663c0fd9554b3 (diff)
downloadikiwiki-aafd267ee099ddb8ff4129a0e4d46964be866f6d.tar
ikiwiki-aafd267ee099ddb8ff4129a0e4d46964be866f6d.tar.gz
Abstract out CVS's involvement in the wrapper:
* In Wrapper.pm, add a new hook "wrapperargcheck" to examine argc/argv and return success or failure. In the failure case, the wrapper terminates. * In cvs.pm, implement the new hook to return failure if a directory is being cvs added.
Diffstat (limited to 'IkiWiki/Plugin/cvs.pm')
-rw-r--r--IkiWiki/Plugin/cvs.pm12
1 files changed, 12 insertions, 0 deletions
diff --git a/IkiWiki/Plugin/cvs.pm b/IkiWiki/Plugin/cvs.pm
index 8409bebed..ff9d578e2 100644
--- a/IkiWiki/Plugin/cvs.pm
+++ b/IkiWiki/Plugin/cvs.pm
@@ -6,6 +6,7 @@ use strict;
use IkiWiki;
sub import {
+ hook(type => "wrapperargcheck", id => "cvs", call => \&wrapperargcheck);
hook(type => "checkconfig", id => "cvs", call => \&checkconfig);
hook(type => "getsetup", id => "cvs", call => \&getsetup);
hook(type => "rcs", id => "rcs_update", call => \&rcs_update);
@@ -20,6 +21,17 @@ sub import {
hook(type => "rcs", id => "rcs_getctime", call => \&rcs_getctime);
}
+sub wrapperargcheck () {
+ my $check_args=<<"EOF";
+ int j;
+ for (j = 1; j < argc; j++)
+ if (strstr(argv[j], "New directory") != NULL)
+ return 0;
+ return 1;
+EOF
+ return $check_args;
+}
+
sub checkconfig () {
if (! defined $config{cvspath}) {
$config{cvspath}="ikiwiki";