# 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