chiark / gitweb /
Break out ensuredir and make mkrepotmp use it
[dgit.git] / infra / dgit-repos-server
index 1492794e4088b0154820d557305dbbd3c9c424d9..e794de25d152d4f421dc9064f1b58ce3670b3f68 100755 (executable)
@@ -234,12 +234,9 @@ sub lockrealtree () {
     locksometree(realdestrepo);
 }
 
-sub mkrepotmp () {
-    my $tmpdir = "$dgitrepos/_tmp";
-    return if mkdir $tmpdir;
-    return if $! == EEXIST;
-    die $!;
-}
+sub mkrepotmp () { ensuredir "$dgitrepos/_tmp" };
+
+sub removedtagsfile () { "$dgitrepos/_removed-tags/$package"; }
 
 sub recorderror ($) {
     my ($why) = @_;
@@ -275,7 +272,7 @@ sub policyhook {
     debugcmd '+',@cmd;
     my $r = system @cmd;
     die "system: $!" if $r < 0;
-    die "hook (".(shellquote @cmd).") failed ($?)"
+    die "dgit-repos-server: policy hook failed (or rejected) ($?)\n"
        if $r & ~($policyallowbits << 8);
     printdebug sprintf "hook => %#x\n", $r;
     return $r >> 8;
@@ -499,7 +496,7 @@ sub parsetag () {
            while (length) {
                if (s/^distro\=(\S+) //) {
                    die "$1 != $distro" unless $1 eq $distro;
-               } elsif (s/^(--deliberately-$package_re) //) {
+               } elsif (s/^(--deliberately-$deliberately_re) //) {
                    push @deliberatelies, $1;
                } elsif (s/^supersede:(\S+)=(\w+) //) {
                    die "supersede $1 twice" if defined $supersedes{$1};
@@ -680,7 +677,7 @@ sub checktagnoreplay () {
     my @problems;
 
     git_for_each_tag_referring($onlyreferring, sub {
-       my ($objid,$fullrefname,$tagname) = @_;
+       my ($objid,$refobjid,$fullrefname,$tagname) = @_;
        printdebug "checktagnoreplay - overwriting $fullrefname=$objid\n";
        my $supers = $supersedes{$fullrefname};
        if (!defined $supers) {