chiark / gitweb /
dgit-repos-policy-debian: Move time check (nfc, apart from debugging)
[dgit.git] / infra / dgit-repos-server
index 63f9aac081df8284e08c4b8ae9304d4114ab9a8e..634f91edab17ee52103433f1e1790f3f92b14dba 100755 (executable)
@@ -263,7 +263,7 @@ sub runcmd {
     debugcmd '+',@_;
     $!=0; $?=0;
     my $r = system @_;
-    die "@_ $? $!" if $r;
+    die (shellquote @_)." $? $!" if $r;
 }
 
 sub policyhook {
@@ -274,8 +274,9 @@ sub policyhook {
     debugcmd '+',@cmd;
     my $r = system @cmd;
     die "system: $!" if $r < 0;
-    die "hook (@cmd) failed ($?)" if $r & ~($policyallowbits << 8);
-    printdebug sprintf "hook (%s) => %#x\n", "@polargs", $r;
+    die "hook (".(shellquote @cmd).") failed ($?)"
+       if $r & ~($policyallowbits << 8);
+    printdebug sprintf "hook => %#x\n", $r;
     return $r >> 8;
 }
 
@@ -300,15 +301,21 @@ sub movetogarbage () {
     # purposes (and, I guess, recovery from mistakes).  This is either
     # $garbage or $garbage-old.
     if (stat_exists "$garbagerepo") {
+       printdebug "movetogarbage: rmtree $garbagerepo-tmp\n";
        rmtree "$garbagerepo-tmp";
        if (rename "$garbagerepo-old", "$garbagerepo-tmp") {
+           printdebug "movetogarbage: $garbagerepo-old -> -tmp, rmtree\n";
            rmtree "$garbagerepo-tmp";
        } else {
            die "$garbagerepo $!" unless $!==ENOENT;
+           printdebug "movetogarbage: $garbagerepo-old -> -tmp\n";
        }
+       printdebug "movetogarbage: $garbagerepo -> -old\n";
        rename "$garbagerepo", "$garbagerepo-old" or die "$garbagerepo $!";
     }
-    rename realdestrepo, $garbagerepo
+    my $real = realdestrepo;
+    printdebug "movetogarbage: $real -> $garbagerepo\n";
+    rename $real, $garbagerepo
        or $! == ENOENT
        or die "$garbagerepo $!";
 }
@@ -889,7 +896,7 @@ sub parseargsdispatch () {
     if ($ARGV[0] eq '--pre-receive-hook') {
        if ($debuglevel) {
            $debugprefix.="=";
-           printdebug "in stunthook @ARGV\n";
+           printdebug "in stunthook ".(shellquote @ARGV)."\n";
            foreach my $k (sort keys %ENV) {
                printdebug "$k=$ENV{$k}\n" if $k =~  m/^DGIT/;
            }