diff options
Diffstat (limited to 'infra')
-rwxr-xr-x | infra/dgit-repos-server | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index 6131774..54a63f9 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -407,16 +407,21 @@ sub makeworkingclone () { rmtree "${workrepo}_fresh"; } +sub mkscript ($$) { + my ($path,$contents) = @_; + my $fh = new IO::File $path, O_WRONLY|O_CREAT|O_TRUNC, 0777 + or die "$path: $!"; + print $fh $contents or die "$path: $!"; + close $fh or die "$path: $!"; +} + sub setupstunthook () { my $prerecv = "$workrepo/hooks/pre-receive"; - my $fh = new IO::File $prerecv, O_WRONLY|O_CREAT|O_TRUNC, 0777 - or die "$prerecv: $!"; - print $fh <<END or die "$prerecv: $!"; + mkscript $prerecv, <<END; #!/bin/sh set -e exec $0 --pre-receive-hook $package END - close $fh or die "$prerecv: $!"; $ENV{'DGIT_DRS_WORK'}= $workrepo; $ENV{'DGIT_DRS_DEST'}= $destrepo; printdebug " stunt hook set up $prerecv\n"; |