blob: 30b5ebeca2efd254fe39c15fd3a74e14d70ddead (
plain) (
tree)
|
|
#!/usr/bin/env bash
# Like the fzcd plugin, but better.
set -o errexit -o pipefail
shopt -s inherit_errexit lastpipe
if command -v fzf > /dev/null 2>&1; then
sel="$( fzf )"
else
exit 1
fi
nnn_cd() {
dir="$1"
if [ -z "$NNN_PIPE" ]; then
echo "No pipe file found" >&2
return
fi
printf -- '%s' "0c$dir" > "$NNN_PIPE"
}
if [ -n "$sel" ]; then
if [ ! -d "$sel" ]; then
sel="$( dirname -- "$sel" )"
elif [ "$sel" = . ]; then
exit 0
fi
case "$sel" in
/*)
nnn_cd "$sel"
;;
*)
sel="${sel#./}"
if [ "$PWD" = "/" ]; then
nnn_cd "/$sel"
else
nnn_cd "$PWD/$sel"
fi
;;
esac
fi
|