diff options
author | Amitai Schlair <schmonz@magnetic-babysitter.(none)> | 2009-08-22 01:25:41 -0400 |
---|---|---|
committer | Amitai Schlair <schmonz@magnetic-babysitter.(none)> | 2009-08-22 01:25:41 -0400 |
commit | 524de4db2639d37aa7049de4363c5d482cd34a0e (patch) | |
tree | 966dad995db42b4cbe9bbf0a16268d862b597fe4 | |
parent | 5c0e56d149c6b33d010561f64f583e7ad1c529da (diff) |
Pass along wrapper args to ikiwiki, then handle the "cvs add dir"
case with a getopt hook directly in my plugin. If the wrapper change
is safe, we won't need a wrapper wrapper.
-rw-r--r-- | IkiWiki/Plugin/cvs.pm | 8 | ||||
-rw-r--r-- | IkiWiki/Wrapper.pm | 2 |
2 files changed, 9 insertions, 1 deletions
diff --git a/IkiWiki/Plugin/cvs.pm b/IkiWiki/Plugin/cvs.pm index c09e4f9aa..076af26f3 100644 --- a/IkiWiki/Plugin/cvs.pm +++ b/IkiWiki/Plugin/cvs.pm @@ -6,6 +6,7 @@ use strict; use IkiWiki; sub import { + hook(type => "getopt", id => "cvs", call => \&getopt); 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,13 @@ sub import { hook(type => "rcs", id => "rcs_getctime", call => \&rcs_getctime); } +sub getopt () { + # "cvs add dir" acts immediately on the repository. + # post-commit gets confused by this and doesn't need to act on it. + # If that's why we're here, terminate the process. + @ARGV == 3 && $ARGV[1] eq "NONE" && $ARGV[2] eq "NONE" && exit 0; +} + sub checkconfig () { if (! defined $config{cvspath}) { $config{cvspath}="ikiwiki"; diff --git a/IkiWiki/Wrapper.pm b/IkiWiki/Wrapper.pm index 6555fe625..4d92716ff 100644 --- a/IkiWiki/Wrapper.pm +++ b/IkiWiki/Wrapper.pm @@ -139,7 +139,7 @@ $envsave } $pre_exec - execl("$this", "$this", NULL); + execv("$this", argv); perror("exec $this"); exit(1); } |