# shellcheck shell=dash

___x_cmd_ip_local(){
    local x_=;
    ___x_cmd os name_ || return 1
    case "$x_" in
        darwin|linux|win)
            "___x_cmd_ip_local___$x_"
    esac
}

___x_cmd_ip_local___darwin(){
    ___x_cmd_cmds ifconfig | \
        ___x_cmd_cmds_awk -v NO_COLOR="$NO_COLOR" \
                          -f "$___X_CMD_ROOT_MOD/ip/lib/awk/ifconfig.darwin.awk"
}

___x_cmd_ip_local___linux(){
    if ! ___x_cmd_hascmd ip; then
        if ! ___x_cmd_hascmd busybox; then
            ___x_cmd ui yesno "ip command not found, use the busybox's ip command?" || return
            ___x_cmd env use busybox || return 1
        fi
        ___x_cmd_cmds busybox ip addr show | \
            ___x_cmd_cmds_awk -v NO_COLOR="$NO_COLOR" \
                              -f "$___X_CMD_ROOT_MOD/ip/lib/awk/ip.linux.awk"
        return
    fi

    ___x_cmd_cmds ip addr show | \
        ___x_cmd_cmds_awk -v NO_COLOR="$NO_COLOR" \
                          -f "$___X_CMD_ROOT_MOD/ip/lib/awk/ip.linux.awk"
}

___x_cmd_ip_local___win(){
    xrc pwsh; ___x_cmd_pwsh___exec txt ipconfig | \
        ___x_cmd_cmds_awk -v NO_COLOR="$NO_COLOR" \
                          -f "$___X_CMD_ROOT_MOD/ip/lib/awk/ipconfig.win.awk"
}
