##@cooked comments # -*- coding: utf-8 mode: sh -*- vim:sw=4:sts=4:et:ai:si:sta:fenc=utf-8
## Gestion de chemins standardisés
##@cooked nocomments
##@require base
##@require sysinfos
uprovide prefixes
urequire base sysinfos

UTOOLS_PREFIXES=(USER HOME)

function get_USER_prefix() {
    echo "$USER"
}
function get_HOME_prefix() {
    echo "$HOME"
}

function has_prefix() {
    array_contains UTOOLS_PREFIXES "$1" && return 0
    local prefix
    for prefix in "${UTOOLS_PREFIXES[@]}"; do
        if beginswith "$1" "$prefix/"; then
            return 0
        fi
    done
    return 1
}

function expand_prefix() {
    local prefix
    for prefix in "${UTOOLS_PREFIXES[@]}"; do
        if beginswith "$1" "$prefix/" || [ "$1" == "$prefix" ]; then
            echo "$(get_${prefix}_prefix)${1#$prefix}"
            return
        fi
    done
    echo "$1"
}

function list_prefixes() {
    local prefix
    for prefix in "${UTOOLS_PREFIXES[@]}"; do
        echo "$prefix"
    done
}

function dump_prefixes() {
    local prefix
    for prefix in "${UTOOLS_PREFIXES[@]}"; do
        echo "$prefix=$(expand_prefix "$prefix")"
    done
}