]> Sergey Matveev's repositories - nnn.git/commitdiff
bookmarks: Pipe error to PAGER and clean up code (#631)
authorTodd Yamakawa <toddyamakawa@users.noreply.github.com>
Wed, 3 Jun 2020 19:17:46 +0000 (14:17 -0500)
committerGitHub <noreply@github.com>
Wed, 3 Jun 2020 19:17:46 +0000 (00:47 +0530)
Co-authored-by: Todd Yamakawa <todd.yamakawa@arm.com>
plugins/bookmarks

index c17d9e2ceb1565824524ed7fd416b8836957ad06..614b20f268d9958ded661385bdd1aa2e4f1070b4 100755 (executable)
@@ -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
 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