You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
18 lines
586 B
Fish
18 lines
586 B
Fish
6 years ago
|
function __fzf_get_dir -d 'Find the longest existing filepath from input string'
|
||
|
set dir $argv
|
||
|
|
||
|
# Strip all trailing slashes. Ignore if $dir is root dir (/)
|
||
|
if [ (string length $dir) -gt 1 ]
|
||
|
set dir (string replace -r '/*$' '' $dir)
|
||
|
end
|
||
|
|
||
|
# Iteratively check if dir exists and strip tail end of path
|
||
|
while [ ! -d "$dir" ]
|
||
|
# If path is absolute, this can keep going until ends up at /
|
||
|
# If path is relative, this can keep going until entire input is consumed, dirname returns "."
|
||
|
set dir (dirname "$dir")
|
||
|
end
|
||
|
|
||
|
echo $dir
|
||
|
end
|