From 549f0b3a00e94dddec0cf6e61cec164fe896c7e0 Mon Sep 17 00:00:00 2001 From: Connor Olding Date: Sun, 1 Aug 2021 08:03:41 -0700 Subject: [PATCH] fix nasty bugs in bak --- sh/bak | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/sh/bak b/sh/bak index aae753d..454ec9f 100644 --- a/sh/bak +++ b/sh/bak @@ -8,21 +8,22 @@ bak() { ### @- ### this calls itself recursively to avoid clobbering existing backups. ### ### ``` - ### % touch -d '2001-12-25 16:30:00' butts - ### % bak butts - ### % touch butts - ### % bak butts - ### % ls -l + ### $ touch -d '2001-12-25 16:30:00' butts + ### $ bak butts + ### $ touch butts + ### $ bak butts + ### $ ls -l ### total 0 - ### -rw-r--r-- 1 notwa None 0 Aug 1 07:56 butts - ### -rw-r--r-- 1 notwa None 0 Dec 25 2001 butts.bak + ### -rw-r--r-- 1 notwa None 0 Aug 1 08:02 butts + ### -rw-r--r-- 1 notwa None 0 Aug 1 08:02 butts.bak ### -rw-r--r-- 1 notwa None 0 Dec 25 2001 butts.bak.bak ### ``` [ $# -gt 0 ] || { printf "%s\n" "$0: too few arguments" >&2; return 1; } local ret=0 + local f for f; do if [ -e "$f.bak" ]; then - bak "$f.bak" || ret=1 + bak "$f.bak" || { ret=1; continue; } fi cp -p "$f" "$f.bak" || ret=1 done