aboutsummaryrefslogtreecommitdiffstats
path: root/plugins/fzcd
blob: c4694e3c839b4fc087e3c03dd5758832891b3aae (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#!/usr/bin/env sh

# Description: Run fzf 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 --print0)
else
	exit 1
fi

if [ "$?" -eq "0" ]; then
	case "$(file -bi "$sel")" in
		*directory*) ;;
		*) sel=$(dirname "$sel") ;;
	esac

    # Remove "./" prefix
    sel="$(echo "$sel" | cut -c 3-)"
	nnn_cd "$PWD/$sel"
fi