
___x_cmd_gemini_cli(){
    [ $# -gt 0 ]    ||  set -- --runcmd

    local op="$1";      shift
    case "$op" in
        -h|--help)      ___x_cmd help -m gemini cli         "$@"; return 0 ;;
        --|--runmain)   ___x_cmd_gemini_cli___runmain      "$@" ;;
        --runcmd)       ___x_cmd_gemini_cli___runcmd        "$@" ;;
        *)              ___x_cmd_gemini_cli___runmain "$op" "$@" ;;
    esac
}

___x_cmd_gemini_cli___runmain(){
    ___x_cmd_gemini_has_apikey || return $?
    local apikey=""; local proxy=""
    ___x_cmd_gemini_cur apikey:= proxy:= 2>/dev/null
    GEMINI_API_KEY="$apikey"    \
    ___x_cmd proxy runifset "$proxy" \
    ___x_cmd_gemini_cli___runcmd "$@"
}

___x_cmd_gemini_cli___runcmd(){
    if ___x_cmd_hascmd gemini; then
        ___x_cmd_gemini_cli___runcmd(){
            ___x_cmd_cmds gemini "$@"
        }
    else
        ___x_cmd_gemini_cli___runcmd(){
            ___x_cmd snap --run gemini "$@"
        }
    fi && ___x_cmd_gemini_cli___runcmd "$@"
}
