diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2016-11-16 11:31:26 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2016-11-16 11:31:26 +1300 |
commit | d38b2ac502f33294d7e79ebe802d30fc29b4fefd (patch) | |
tree | 4ef7f765c4732078ca11b242565dc6db99573887 | |
parent | Add sqs(1df) (diff) | |
download | dotfiles-d38b2ac502f33294d7e79ebe802d30fc29b4fefd.tar.gz dotfiles-d38b2ac502f33294d7e79ebe802d30fc29b4fefd.zip |
Resolve issue with destructive sqs(1df)/stex(1df)
-rw-r--r-- | ISSUES.markdown | 2 | ||||
-rwxr-xr-x | bin/sqs | 11 | ||||
-rwxr-xr-x | bin/stex | 8 |
3 files changed, 18 insertions, 3 deletions
diff --git a/ISSUES.markdown b/ISSUES.markdown index e5a84a79..a47092bf 100644 --- a/ISSUES.markdown +++ b/ISSUES.markdown @@ -16,5 +16,3 @@ Known issues it would be great, probably using ImageMagick import(1) * sxhkd(1) might be nicer than xbindkeys; it's in Debian Testing now * I don't think that the the timeout for dmp(1df) is working -* stex(1df) and sqs(1df) both overwrite files without checking, which is a - bit rude @@ -1,9 +1,10 @@ #!/bin/sh # Chop a trailing query string off filenames +self=sqs # Check args if [ "$#" -eq 0 ] ; then - printf >&2 'Need a filename\n' + printf >&2 '%s: Need a filename\n' "$self" exit 2 fi @@ -17,6 +18,14 @@ for sn ; do # Ignore this file if its name wouldn't change [ "$sn" != "$dn" ] || continue + # Ignore this file if its name already exists (don't overwrite) + if [ -e "$dn" ] ; then + printf >&2 '%s: File named %s already exists\n' \ + "$self" "$dn" + ex=1 + continue + fi + # Attempt a rename, flag an error if there was one mv -- "$sn" "$dn" || ex=1 done @@ -21,6 +21,14 @@ for sn ; do # Ignore this file if its name wouldn't change [ "$sn" != "$dn" ] || continue + # Ignore this file if its name already exists (don't overwrite) + if [ -e "$dn" ] ; then + printf >&2 '%s: File named %s already exists\n' \ + "$self" "$dn" + ex=1 + continue + fi + # Attempt a rename, flag an error if there was one mv -- "$sn" "$dn" || ex=1 done |