From 8afbacc6da4ad5ccaf931d113df175bef22cc7b1 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sat, 21 Mar 2015 13:41:06 +0000 Subject: Move stat_exists to Dgit.pm --- Debian/Dgit.pm | 8 ++++++++ dgit | 7 ------- infra/dgit-repos-server | 16 ++++------------ 3 files changed, 12 insertions(+), 19 deletions(-) diff --git a/Debian/Dgit.pm b/Debian/Dgit.pm index 211bae3..8b29ba2 100644 --- a/Debian/Dgit.pm +++ b/Debian/Dgit.pm @@ -12,6 +12,7 @@ BEGIN { $VERSION = 1.00; @ISA = qw(Exporter); @EXPORT = qw(debiantag server_branch server_ref + stat_exists $package_re $branchprefix); %EXPORT_TAGS = ( policyflags => qw() ); @EXPORT_OK = qw(); @@ -43,4 +44,11 @@ sub debiantag ($) { sub server_branch ($) { return "$branchprefix/$_[0]"; } sub server_ref ($) { return "refs/".server_branch($_[0]); } +sub stat_exists ($) { + my ($f) = @_; + return 1 if stat $f; + return 0 if $!==&ENOENT; + die "stat $f: $!"; +} + 1; diff --git a/dgit b/dgit index a0144bc..ad6289d 100755 --- a/dgit +++ b/dgit @@ -185,13 +185,6 @@ sub changedir ($) { chdir $newdir or die "chdir: $newdir: $!"; } -sub stat_exists ($) { - my ($f) = @_; - return 1 if stat $f; - return 0 if $!==&ENOENT; - die "stat $f: $!"; -} - sub deliberately ($) { return !!grep { $_[0] eq $_ } @deliberatelies; } diff --git a/infra/dgit-repos-server b/infra/dgit-repos-server index 5599061..d2f94f1 100755 --- a/infra/dgit-repos-server +++ b/infra/dgit-repos-server @@ -124,10 +124,7 @@ sub acquirelock ($$) { debug " locking $lock failed"; return undef; } - if (!stat $lock) { - next if $! == ENOENT; - die "stat $lock: $!"; - } + next unless stat_exists $lock; my $want = (stat _)[1]; stat $fh or die $!; my $got = (stat _)[1]; @@ -267,10 +264,7 @@ END sub dealwithfreshrepo () { my $freshrepo = "${workrepo}_fresh"; - if (!stat $freshrepo) { - $!==ENOENT or die "$freshrepo $!"; - return; - } + return unless stat_exists $freshrepo; $destrepo = $freshrepo; } @@ -596,8 +590,7 @@ sub stunthook () { sub fixmissing__git_upload_pack () { $destrepo = "$dgitrepos/_empty"; my $lfh = acquiretree($destrepo,1); - return if stat $destrepo; - die $! unless $!==ENOENT; + return if stat_exists $destrepo; rmtree "$destrepo.new"; mkemptyrepo "$destrepo.new", "0644"; rename "$destrepo.new", $destrepo or die $!; @@ -686,10 +679,9 @@ sub parseargsdispatch () { } close $pollock or die $!; - if (stat $realdestrepo) { + if (stat_exists $realdestrepo) { $destrepo = $realdestrepo; } else { - $! == ENOENT or die "stat dest repo $destrepo: $!"; debug " fixmissing $funcn"; my $fixfunc = $main::{"fixmissing__$funcn"}; &$fixfunc; -- cgit v1.2.3