From a4e4cf23ca984e1fc7633b48f94c1795a5bc7ec8 Mon Sep 17 00:00:00 2001 From: Tom Ryder Date: Sat, 20 Aug 2016 13:52:55 +1200 Subject: Port pd() to POSIX sh --- bash/bashrc.d/pd.bash | 53 --------------------------------------------------- 1 file changed, 53 deletions(-) delete mode 100644 bash/bashrc.d/pd.bash (limited to 'bash/bashrc.d') diff --git a/bash/bashrc.d/pd.bash b/bash/bashrc.d/pd.bash deleted file mode 100644 index 47a317e0..00000000 --- a/bash/bashrc.d/pd.bash +++ /dev/null @@ -1,53 +0,0 @@ -# Attempt to change into the argument's parent directory; preserve any options -# and pass them to cd. This is intended for use when you've got a file path in -# a variable, or in history, or in Alt+., and want to quickly move to its -# containing directory. In the absence of an argument, this just shifts up a -# directory, i.e. `cd ..` -pd() { - - # For completeness' sake, we'll pass any options to cd - local arg - local -a opts - for arg ; do - case $arg in - --) - shift - break - ;; - -*) - shift - opts[${#opts[@]}]=$arg - ;; - *) - break - ;; - esac - done - - # Determine target directory - local target - case $# in - 0) - target=.. - ;; - 1) - target=$1 - target=${target%/} - target=${target%/*} - ;; - *) - printf 'bash: %s: too many arguments\n' \ - "$FUNCNAME" >&2 - return 2 - ;; - esac - - # If we have a target directory, try to change into it - if [[ -n $target ]] ; then - builtin cd "${opts[@]}" -- "$target" - else - printf 'bash: %s: error calculating parent directory\n' \ - "$FUNCNAME" >&2 - return 2 - fi -} -- cgit v1.2.3