aboutsummaryrefslogblamecommitdiffstats
path: root/plugins/fzcd
blob: 9e93969c00b198475c09af2badcbf92bfe0a2e29 (plain) (tree)
1
2
3
4
5
6
7
8
                 
                                                                                       


                        
                                      










                                                     
                  


              

                                     
                               
          
 
                                     
                          
#!/usr/bin/env sh

# Description: Run fzf/fzy, fd/fdfind/find and go to the directory of the file selected
#
# Shell: POSIX compliant
# Author: Anna Arad

. "$(dirname "$0")"/.nnn-plugin-helper

if [ "$(cmd_exists fzy)" -eq "0" ]; then
	if [ "$(cmd_exists fd)" -eq "0" ]; then
		fd=fd
	elif [ "$(cmd_exists fdfind)" -eq "0" ]; then
		fd=fdfind
	else
		fd=find
	fi

	sel=$($fd | fzy)
elif [ "$(cmd_exists fzf)" -eq "0" ]; then
	sel=$(fzf)
else
	exit 1
fi

if [ -n "$sel" ]; then
	if ! [ -d "$sel" ]; then
		sel=$(dirname "$sel")
    elif [ "$sel" = "." ]; then
        exit 0
	fi

    # Remove "./" prefix if it exists
    sel="${sel#./}"
	nnn_cd "$PWD/$sel"
fi