diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2019-01-01 01:11:08 +1300 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2019-01-01 01:11:08 +1300 |
commit | e19bb8fb3c8350bee288327abd978a59eb3dc0f7 (patch) | |
tree | 754d2d883b27477f53f0fece44ef9edc7e4238f0 /sh/shrc.d/sd.sh | |
parent | Merge branch 'release/v4.2.0' (diff) | |
parent | Bump VERSION (diff) | |
download | dotfiles-954586e6ed7dfbd525e6ec8d1adc4f0c0bc0a48e.tar.gz (sig) dotfiles-954586e6ed7dfbd525e6ec8d1adc4f0c0bc0a48e.zip |
Merge branch 'release/v4.3.0'v4.3.0
* release/v4.3.0:
Bump VERSION
Switch to using GNU Emacs on development machines
Trim some trailing whitespace
Clarify control flow in shell scripts
Add clarifying comment
Translate a short-circuit into a conditional
Add a cheeky error message to sd()
Strip trailing slashes from sd() target
Correct error message from sd()
Diffstat (limited to 'sh/shrc.d/sd.sh')
-rw-r--r-- | sh/shrc.d/sd.sh | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/sh/shrc.d/sd.sh b/sh/shrc.d/sd.sh index 04b50f6d..10597832 100644 --- a/sh/shrc.d/sd.sh +++ b/sh/shrc.d/sd.sh @@ -38,12 +38,26 @@ sd() { return 2 fi + # Strip trailing slashes + while : ; do + case $1 in + *?/) set -- "${1%/}" ;; + *) break ;; + esac + done + # Read sole optional argument case $1 in + # Root has no siblings + /) + printf >&2 'sd(): Radical misunderstanding\n' + return 2 + ;; + # Slashes aren't allowed */*) - printf >&2 'bd(): Illegal slash\n' + printf >&2 'sd(): Illegal slash\n' return 2 ;; |