From: Ian Jackson Date: Thu, 20 Aug 2020 00:20:17 +0000 (+0100) Subject: expire-iso8601: break out do_rm and rename to .rm X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?a=commitdiff_plain;h=09f19c228bfb97e09430751fa944c4c631c9b9c9;p=chiark-utils.git expire-iso8601: break out do_rm and rename to .rm Signed-off-by: Ian Jackson --- diff --git a/scripts/expire-iso8601 b/scripts/expire-iso8601 index 6e6da6f..a367298 100755 --- a/scripts/expire-iso8601 +++ b/scripts/expire-iso8601 @@ -183,6 +183,15 @@ sub flag ($) { } } +sub do_rm ($) { + my ($fn) = @_; + if ($rm) { + my $r= system 'rm', ($recurse ? ('-r') : ()), "--", $fn; + die "run rm: $!\n" unless defined($r) && $r >= 0; + exit 12 if $r; + } +} + sub implement () { foreach (reverse @files) { next unless @{$_->{U}}; @@ -194,9 +203,9 @@ sub implement () { printf "remove %s - age %.1f\n", $_->{F}, $_->{A}; if ($rm) { - my $r= system 'rm', ($recurse ? ('-r') : ()), "--", $_->{F}; - die "run rm: $!\n" unless defined($r) && $r >= 0; - exit 12 if $r; + my $tmp = "$_->{F}.rm"; + rename $_->{F}, $tmp or die "rename $_->{F} to $tmp: $!\n"; + do_rm($tmp); } } }