From 700065c1fe302ad3640668dc34462f29df37cbb7 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Sun, 3 May 2020 22:15:04 +0100 Subject: [PATCH] nailing-cargo: Bugfixes Signed-off-by: Ian Jackson --- nailing-cargo | 45 ++++++++++++++++++++++----------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/nailing-cargo b/nailing-cargo index 95377fe..bff0495 100755 --- a/nailing-cargo +++ b/nailing-cargo @@ -97,28 +97,28 @@ sub getcfg ($$) { sub takelock () { for (;;) { - open LOCK, ">", $lockfile or die "$0: open/create $lockfile: $!\n"; - flock LOCK, LOCK_EX or die "$0: lock $lockfile: $!\n"; - my @fstat = stat LOCK or die "$0: fstat: $!\n"; + open LOCK, ">", $lockfile or die "$self: open/create $lockfile: $!\n"; + flock LOCK, LOCK_EX or die "$self: lock $lockfile: $!\n"; + my @fstat = stat LOCK or die "$self: fstat: $!\n"; my @stat = stat $lockfile; if (!@stat) { next if $! == ENOENT; - die "$0: stat $lockfile: $!\n"; + die "$self: stat $lockfile: $!\n"; } last if "@fstat[0..5]" eq "@stat[0..5]"; } } sub unlock () { - unlink $lockfile or die "$0: removing lockfile: $!\n"; + unlink $lockfile or die "$self: removing lockfile: $!\n"; } our $nail; sub readnail () { my $nailfile = "../Cargo.nail"; - open N, '<', $nailfile or die "$0: open $nailfile: $!\n"; + open N, '<', $nailfile or die "$self: open $nailfile: $!\n"; local ($/) = undef; - my $toml = // die "$0: read $nailfile: $!"; + my $toml = // die "$self: read $nailfile: $!"; my $transformed; if ($toml !~ m{^\s*\[/}m && $toml !~ m{^[^\n\#]*\=}m && @@ -134,7 +134,7 @@ sub readnail () { $toml =~ s/^/ /mg; print STDERR "$self: $nailfile transformed into TOML:\n$toml\n"; } - die "$0: parse $nailfile: $e\n"; + die "$self: parse $nailfile: $e\n"; } die "$e ?" if length $e; } @@ -202,10 +202,10 @@ sub calculate () { } } my $nailing = "$mf.nailing~"; - unlink $nailing or $!==ENOENT or die "$0: remove old $nailing: $!\n"; - open N, '>', $nailing or die "$0: create new $nailing: $!\n"; - print N to_toml($toml) or die "$0: write new $nailing: $!\n"; - close N or die "$0: close new $nailing: $!\n"; + unlink $nailing or $!==ENOENT or die "$self: remove old $nailing: $!\n"; + open N, '>', $nailing or die "$self: create new $nailing: $!\n"; + print N to_toml($toml) or die "$self: write new $nailing: $!\n"; + close N or die "$self: close new $nailing: $!\n"; } } @@ -215,8 +215,7 @@ END { if ($want_uninstall) { local ($?); foreach my $mf (keys %manifests) { - eval { uninstall1($mf, 0); 1; } - or warn "$0: failed to revert $mf: $@\n"; + eval { uninstall1($mf, 0); 1; } or warn "$@"; } } } @@ -236,9 +235,9 @@ sub install () { my $diff; if (open NN, '<', $nailed) { $diff = compare($nailing, \*NN); - die "$0: compare $nailing and $nailed: $!" if $diff<0; + die "$self: compare $nailing and $nailed: $!" if $diff<0; } else { - $!==ENOENT or die "$0: check previous $nailed: $!\n"; + $!==ENOENT or die "$self: check previous $nailed: $!\n"; $diff = 1; } if ($diff) { @@ -248,8 +247,8 @@ sub install () { $use = $nailed; $rm = $nailing; } - rename $use, $mf or die "$0: install nailed $use: $!\n"; - unlink $rm or $!==ENOENT or die "$0: remove old $rm: $!\n"; + rename $use, $mf or die "$self: install nailed $use: $!\n"; + unlink $rm or $!==ENOENT or die "$self: remove old $rm: $!\n"; } } @@ -258,13 +257,13 @@ sub invoke () { if (!$r) { return 0; } elsif ($r<0) { - print STDERR "$0: could not execute $ARGV[0]: $!\n"; + print STDERR "$self: could not execute $ARGV[0]: $!\n"; return 127; } elsif ($r & 0xff00) { - print STDERR "$0: $ARGV[0] failed (exit status $r)\n"; + print STDERR "$self: $ARGV[0] failed (exit status $r)\n"; return $r >> 8; } else { - print STDERR "$0: $ARGV[0] died due to signal! (wait status $r)\n"; + print STDERR "$self: $ARGV[0] died due to signal! (wait status $r)\n"; return 125; } } @@ -273,7 +272,7 @@ sub uninstall1 ($$) { my ($mf, $enoentok) = @_; my $unnailed = "$mf.unnailed"; rename $unnailed, $mf or ($enoentok && $!==ENOENT) - or die "$0: rename $unnailed back to $mf: $!\n"; + or die "$self: failed to revert: rename $unnailed back to $mf: $!\n"; } sub uninstall () { @@ -311,7 +310,7 @@ __DATA__ lock=${PWD%/*}/.nail.lock if [ "x$NAILING_CARGO" != "x$lock" ]; then NAILING_CARGO=$lock \ - exec with-lock-ex -w "$lock" "$0" "$@" + exec with-lock-ex -w "$lock" "$self" "$@" fi exec 203<../Cargo.nail -- 2.30.2