aboutsummaryrefslogtreecommitdiff
path: root/IkiWiki/Wrapper.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/Wrapper.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/Wrapper.pm')
-rw-r--r--IkiWiki/Wrapper.pm21
1 files changed, 9 insertions, 12 deletions
diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm
index cc2223d7a..0baf112ff 100644
--- a/IkiWiki/Wrapper.pm
+++ b/IkiWiki/Wrapper.pm
@@ -44,17 +44,8 @@ EOF
$test_receive=IkiWiki::Receive::gen_wrapper();
}
- my $check_cvs_add_dir="";
- if ($config{rcs} eq 'cvs') {
- $check_cvs_add_dir=<<"EOF";
- {
- int j;
- for (j = 1; j < argc; j++)
- if (strstr(argv[j], "New directory") != NULL)
- exit(0);
- }
-EOF
- }
+ my $check_args=" return 0;";
+ run_hooks(wrapperargcheck => sub { $check_args = shift->(); });
my $check_commit_hook="";
my $pre_exec="";
@@ -128,10 +119,16 @@ addenv(char *var, char *val) {
newenviron[i++]=s;
}
+int checkargs(int argc, char **argv) {
+$check_args
+}
+
int main (int argc, char **argv) {
char *s;
-$check_cvs_add_dir
+ if (!checkargs(argc, argv))
+ exit(0);
+
$check_commit_hook
$test_receive
$envsave