chiark
/
gitweb
/
~ian
/
chiark-utils.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
expire-iso8601: break out do_rm and rename to .rm
[chiark-utils.git]
/
scripts
/
expire-iso8601
diff --git
a/scripts/expire-iso8601
b/scripts/expire-iso8601
index 6e6da6f52aae60ee1d2a4ce86080003f76371ff3..a36729860079d715388c309487f28984a455070b 100755
(executable)
--- 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}};
sub implement () {
foreach (reverse @files) {
next unless @{$_->{U}};
@@
-194,9
+203,9
@@
sub implement () {
printf "remove %s - age %.1f\n",
$_->{F}, $_->{A};
if ($rm) {
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)
;
}
}
}
}
}
}