mirror of
https://github.com/fish-shell/fish-shell.git
synced 2024-12-01 15:14:26 +08:00
26 lines
496 B
Fish
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
|