fish-shell/share/functions/__fish_parent_directories.fish
Mahmoud Al-Qudsi 225f748f79 Add __fish_parent_directories helper function for completions
Can be used to retrieve a list of parent paths, useful for searching
ancestors recursively via their absolute paths. Paths are returned from
deepest to shallowest, starting from the path passed in. Paths are not
validated for performance reasons. (Usually the input to
__fish_parent_directories would be (pwd) or (dir $file).)
2018-03-05 08:25:25 -06:00

26 lines
496 B
Fish

# Generates a list of parent directories for a given path
# i.e. /a/b/c/d -> [/a/b/c/, /a/b/, /a/, and /a]
function __fish_parent_directories
if test (count $argv) -ne 1
# for use in completions, so don't spew error messages
return 1
end
set -l splits (string split '/' $argv[1])
set -l parents
for split in $splits
if test (string length "$split") -eq 0
continue
end
set parents "$parents[1]/$split" $parents
end
for parent in $parents
echo $parent
end
return 0
end