diff options
author | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-09 16:29:38 +0100 |
---|---|---|
committer | Ian Jackson <ijackson@chiark.greenend.org.uk> | 2017-07-09 16:29:38 +0100 |
commit | 18413810f983efbd083a2fd0cbc2c2cbbadc558b (patch) | |
tree | adae9d497537ae2f4faed6de694f0ada08e8ff57 /infra | |
parent | bada5f43152b731b980626f5f995da1899bc568d (diff) | |
parent | 166121d66d38a3f6584222a03558493c1a23de72 (diff) |
Merge branch 'stable'
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>
Diffstat (limited to 'infra')
-rwxr-xr-x | infra/dgit-repos-server | 24 |
1 files changed, 20 insertions, 4 deletions
diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index 6131774..55dc81f 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"; @@ -938,6 +943,17 @@ sub onwardpush () { my @cmdbase = (qw(git send-pack), $destrepo); push @cmdbase, qw(--force) if $policy & NOFFCHECK; + if ($ENV{GIT_QUARANTINE_PATH}) { + my $recv_wrapper = "$ENV{GIT_QUARANTINE_PATH}/dgit-recv-wrapper"; + mkscript $recv_wrapper, <<'END'; +#!/bin/sh +set -e +unset GIT_QUARANTINE_PATH +exec git receive-pack "$@" +END + push @cmdbase, "--receive-pack=$recv_wrapper"; + } + my @cmd = @cmdbase; push @cmd, "$commit:refs/dgit/$suite", "$tagval:refs/tags/$tagname"; |