From 995fa1ceb678b138eef03a09effff73dc07a0558 Mon Sep 17 00:00:00 2001 From: Todd Yamakawa Date: Wed, 3 Jun 2020 14:17:46 -0500 Subject: bookmarks: Pipe error to PAGER and clean up code (#631) Co-authored-by: Todd Yamakawa --- plugins/bookmarks | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) (limited to 'plugins') diff --git a/plugins/bookmarks b/plugins/bookmarks index c17d9e2..614b20f 100755 --- a/plugins/bookmarks +++ b/plugins/bookmarks @@ -17,6 +17,7 @@ # `ln -s /path/to/movies movies` # # Bonus tip: Add `$BOOKMARKS_DIR` to your `$CDPATH` +# https://linux.101hacks.com/cd-command/cdpath/ # # TODO: # 1. Remove `fzf` dependency @@ -27,7 +28,10 @@ BOOKMARKS_DIR="${XDG_CACHE_HOME:-$HOME/.cache}/nnn/bookmarks" # Check if NNN_PIPE is set -[ -z "$NNN_PIPE" ] && { echo 'NNN_PIPE is not set'; exit 2; } +if [ -z "$NNN_PIPE" ]; then + echo 'ERROR: NNN_PIPE is not set' | ${PAGER:-less} + exit 2 +fi # Get all directory symlinks get_links() { @@ -37,12 +41,12 @@ get_links() { [ -h "$entry" ] || continue [ -d "$entry" ] || continue - echo "$(basename "$entry") -> $(readlink -f "$entry")" - done | column -t + printf "%20s -> %s\n" "$(basename "$entry")" "$(readlink -f "$entry")" + done | fzf | awk 'END { print "'"$BOOKMARKS_DIR"'/"$1 }' } # Choose symlink with fzf -cddir="$(get_links "$BOOKMARKS_DIR" | fzf | awk 'END { print "'"$BOOKMARKS_DIR"'/"$1 }')" +cddir="$(get_links "$BOOKMARKS_DIR")" # Writing result to NNN_PIPE will change nnn's active directory # https://github.com/jarun/nnn/tree/master/plugins#send-data-to-nnn -- cgit v1.2.3-70-g09d2