From 09f19c228bfb97e09430751fa944c4c631c9b9c9 Mon Sep 17 00:00:00 2001 From: Ian Jackson Date: Thu, 20 Aug 2020 01:20:17 +0100 Subject: [PATCH] expire-iso8601: break out do_rm and rename to .rm Signed-off-by: Ian Jackson --- scripts/expire-iso8601 | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) 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); } } } -- 2.30.2