# shellcheck shell=dash disable=SC3028
# It seems dash now supports host name.

xrc:mod:lib     path            obj/_index chain dev util ls rm map

___x_cmd_path___main(){
    [ $# -gt 0 ]    ||      set -- ls

    local op="$1";  shift
    case "$op" in
        dev|\
        chain|\
        ls|lsapp|uniq|map|\
        mingw2win|\
        add|shift|unshift|push|pop|\
        rm|rm_by_prefix|rm_by_suffix|\
        up_or_unshift|down_or_push|add_existed_folder|add_folder)
                            "___x_cmd_path_$op" "$@" ;;

        --help|-h)          ___x_cmd_path_help  "$@" ;;
        *)                  N=path M="Unsupported subcmd -> $op" log:ret:64 ;;
    esac
}

___x_cmd_path_help(){
    ___x_cmd help -m path "$@"
}


# /usr/bin => <mingws root path in windowstyle>\\usr\\bin
___x_cmd_path_mingw2win(){

    local win_path="$1"
    [ "${win_path#*:}" = "${win_path}" ] || {
            printf "%s" "$win_path"
            return
    }

    ___x_cmd_cmds awk -v win_path="$win_path" 'BEGIN{
        if(win_path ~"[a-zA-Z]+:"){
            print win_path
            exit(1)
        }

        if( win_path !~ "^/[a-zA-Z]/" ) exit(0)

        if(  win_path ~ "^/mnt/") win_path = substr(win_path, 6)
        else                      win_path = substr(win_path, 2)

        disk = substr(win_path, 0, index(win_path,"/")-1)
        main_path = substr(win_path, index(win_path,"/")+1)
        gsub("/", "\\", main_path)
        print disk ":\\" main_path
    }'

}

