X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=dgit.git;a=blobdiff_plain;f=infra%2Fdgit-repos-server;h=515501460a3ffb944fcb2ee4fb3049956922e403;hp=98ec16d9b4e382540ffd6ec59a07f307be5d5446;hb=85967df816321c56d70cbfda75994285975347d1;hpb=8a2c3aa997480f715f703b01be7568038eb82fd8 diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index 98ec16d9..51550146 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -26,6 +26,7 @@ # mDM.TXT use strict; +$SIG{__WARN__} = sub { die $_[0]; }; # DGIT-REPOS-DIR contains: # git tree (or other object) lock (in acquisition order, outer first) @@ -161,7 +162,6 @@ our $package; our $distro; our $suitesfile; our $policyhook; -our $realdestrepo; our $destrepo; our $workrepo; our $keyrings; @@ -177,6 +177,8 @@ sub debug { print DEBUG "$debug @_\n"; } +sub realdestrepo () { "$dgitrepos/$package.git"; } + sub acquirelock ($$) { my ($lock, $must) = @_; my $fh; @@ -215,7 +217,7 @@ sub locksometree ($) { } sub lockrealtree () { - locksometree($realdestrepo); + locksometree(realdestrepo); } sub mkrepotmp () { @@ -287,7 +289,7 @@ sub mkrepo_fromtemplate ($) { } sub movetogarbage () { - # $realdestrepo must have been locked + # realdestrepo must have been locked my $garbagerepo = "$dgitrepos/${package}_garbage"; # We arrange to always keep at least one old tree, for anti-rewind # purposes (and, I guess, recovery from mistakes). This is either @@ -301,7 +303,7 @@ sub movetogarbage () { } rename "$garbagerepo", "$garbagerepo-old" or die "$garbagerepo $!"; } - rename $realdestrepo, $garbagerepo + rename realdestrepo, $garbagerepo or $! == ENOENT or die "$garbagerepo $!"; } @@ -347,7 +349,7 @@ sub dealwithfreshrepo () { } sub maybeinstallprospective () { - return if $destrepo eq $realdestrepo; + return if $destrepo eq realdestrepo; if (open REJ, "<", "$workrepo/drs-error") { local $/ = undef; @@ -391,8 +393,8 @@ sub maybeinstallprospective () { movetogarbage; } - debug "install $destrepo => $realdestrepo"; - rename $destrepo, $realdestrepo or die $!; + debug "install $destrepo => ".realdestrepo; + rename $destrepo, realdestrepo or die $!; remove "$destrepo.lock" or die $!; } @@ -813,7 +815,6 @@ sub mode_ssh () { or reject "command string not understood"; my $method = $1; $package = $2; - $realdestrepo = "$dgitrepos/$package.git"; my $funcn = $method; $funcn =~ y/-/_/; @@ -830,8 +831,8 @@ sub mode_ssh () { close $lfh; - if (stat_exists $realdestrepo) { - $destrepo = $realdestrepo; + if (stat_exists realdestrepo) { + $destrepo = realdestrepo; } else { debug " fixmissing $funcn"; my $fixfunc = $main::{"fixmissing__$funcn"};