]> Sergey Matveev's repositories - nnn.git/commitdiff
Replace fd dependency with find (#1078)
authorKlzXS <klzx+github@klzx.cf>
Sun, 20 Jun 2021 20:09:45 +0000 (22:09 +0200)
committerArun Prakash Jana <engineerarun@gmail.com>
Sun, 20 Jun 2021 23:29:50 +0000 (04:59 +0530)
plugins/README.md
plugins/fzcd

index a30b95cf137f854e0e14acc3ca4510a1d73831cd..e9316fb9eef4ef627cbb8894a8251e2ed3e45307 100644 (file)
@@ -25,7 +25,7 @@ Plugins extend the capabilities of `nnn`. They are _executable_ scripts (or bina
 | [dups](dups) | List non-empty duplicate files in current dir | bash | find, md5sum,<br>sort uniq xargs |
 | [finder](finder) | Run custom find command and list | sh | - |
 | [fixname](fixname) | Clean filename to be more shell-friendly [✓] | bash | sed |
-| [fzcd](fzcd) | Fuzzy search multiple dirs (or `$PWD`) and visit file | sh | fzf, (fd) |
+| [fzcd](fzcd) | Fuzzy search multiple dirs (or `$PWD`) and visit file | sh | fzf, (find) |
 | [fzhist](fzhist) | Fuzzy-select a cmd from history, edit in `$EDITOR` and run | sh | fzf, mktemp |
 | [fzopen](fzopen) | Fuzzy find file(s) in subtree to edit/open/pick | sh | fzf, xdg-open/open |
 | [fzplug](fzplug) | Fuzzy find, preview and run other plugins | sh | fzf |
index fb0c16686444bcc88be515731ef750c8ad4e4d19..fd0b971849c357d1a163a7b261b64e3e389c3c3b 100755 (executable)
@@ -2,7 +2,7 @@
 
 # Description: Fuzzy search multiple locations read-in from a path-list file
 #              (or $PWD) and open the selected file's dir in a smart context.
-# Dependencies: fzf, fd (only for multi-location search)
+# Dependencies: fzf, find (only for multi-location search)
 #
 # Details: Paths in list file should be newline-separated absolute paths.
 #          Paths can be file paths; the script will scan the parent dirs.
@@ -18,7 +18,7 @@
 #          - OR, edit selection in nnn and save as path-list file
 #
 # Shell: POSIX compliant
-# Author: Anna Arad, Arun Prakash Jana
+# Author: Anna Arad, Arun Prakash Jana, KlzXS
 
 IFS="$(printf '\n\r')"
 
@@ -44,7 +44,7 @@ elif ! [ -s "$LIST" ]; then
 fi
 
 if [ -n "$LIST" ]; then
-    if type fd >/dev/null 2>&1; then
+    if type find >/dev/null 2>&1; then
         tmpfile=$(mktemp /tmp/abc-script.XXXXXX)
 
         while IFS= read -r path; do
@@ -55,11 +55,13 @@ if [ -n "$LIST" ]; then
             fi
         done < "$LIST"
 
-        sel=$(xargs -d '\n' -a "$tmpfile" fd -H . | fzf --delimiter / --tiebreak=begin --info=hidden)
+        sel=$(xargs -d '\n' -a "$tmpfile" -I{} find {} -type f -printf "%H//%P\n" | sed '/.*\/\/\(\..*\|.*\/\..*\)/d; s:/\+:/:g' | fzf --delimiter / --tiebreak=begin --info=hidden)
+        # Alternative for 'fd'
+        # sel=$(xargs -d '\n' -a "$tmpfile" fd . | fzf --delimiter / --tiebreak=begin --info=hidden)
 
         rm "$tmpfile"
     else
-        printf "fd missing"
+        printf "find missing"
         read -r _
            exit 1
     fi