diff options
Diffstat (limited to 'infra/dgit-repos-policy-debian')
-rwxr-xr-x | infra/dgit-repos-policy-debian | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/infra/dgit-repos-policy-debian b/infra/dgit-repos-policy-debian index cdfa80e..41a5551 100755 --- a/infra/dgit-repos-policy-debian +++ b/infra/dgit-repos-policy-debian @@ -247,6 +247,10 @@ sub action_push () { } sub action_push_confirm () { + getpackage(); + die unless @ARGV; + my $freshrepo = shift @ARGV; + my $initq = $poldbh->prepare(<<END); SELECT taint_id, gitobjid FROM taints t WHERE (package = ? OR package = '') @@ -355,6 +359,17 @@ END return 1; } + if (length $freshrepo) { + if (!good_suite_has_vsn_in_our_history()) { + stat $freshrepo or die "$freshrepo $!"; + my $oldmode = ((stat _)[2]); + my $oldwrites = $oldmode & 0222; + # remove r and x bits which have corresponding w bits clear + my $newmode = $oldmode & ($oldwrites << 1) & ($oldwrites > 1); + chmod $newmode, $freshrepo or die $!; + } + } + return 0; } |