53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			53 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
##@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
 | 
						|
}
 |