# shellcheck shell=dash
___x_cmd_osv___nv(){
    [ $# -gt 0 ] || {
        ___x_cmd_osv___nv0
        return
    }

    local id="$1"
    local x_=
    ___x_cmd_osv_vuln___normalizeid_pat_ "$id" \
        || N=osv M="Unsupported pattern -> $id" log:ret:64
    id="$x_"

    ___x_cmd_osv___nv_ "$id" || return 1
    # case "$id" in
    #     CVE-*)
    #         ___x_cmd_osv___nv_cve "$id"
    #         return
    #         ;;
    #     *)
    #         ___x_cmd osv vuln "$id"
    #         return 0
    #         ;;
    # esac
}

___x_cmd_osv___nv0(){
    local id=
    local cmd=
    ___x_cmd ui select id,cmd   "Next"      \
        "x osv scan ."                      \
        "x osv ls"                          \
        "x osv eco"                         \
        "return 1" || return 1

    eval "$cmd"
}

___x_cmd_osv___nv_(){
    # https://osv.dev/vulnerability/CVE-2024-3094
    local id=
    local cmd=
    ___x_cmd ui select id,cmd  "Next" \
        "x osv vuln $1"                             \
        "x osv vuln --json $1"                      \
        "x osv vuln --yml  $1"                      \
        "x open 'https://osv.dev/vulnerability/$1'" \
        "return 1" || return 1

    eval "$cmd"
}

# ___x_cmd_osv___nv_cve(){
#     # https://nvd.nist.gov/vuln/detail/CVE-2024-3094

#     local id=
#     local cmd=
#     ___x_cmd ui select id,cmd   "Next"      \
#         "x osv vuln $id"                    \
#         "x open 'https://nvd.nist.gov/vuln/detail/$id'" \
#         "return 1" || return

#     eval "$cmd"
# }
