
___x_cmd_go_proxy(){
    [ $# -gt 0 ]        ||  set -- status

    local op="$1";          shift
    case "$op" in
        -h|--help)          ___x_cmd help -m go proxy   ;;
        status|set|unset|autocmd)
                            ___x_cmd_go_proxy_"$op" "$@" ;;
        *)                  N=go M="Unsupported op -> $op" log:ret:64
    esac
}

___x_cmd_go_proxy_status(){
    ___x_cmd_go___runmain env GOPROXY
}

___x_cmd_go_proxy_set(){
    local url="https://goproxy.cn"
    ___x_cmd_go___runmain env -w "GOPROXY=$url,direct"
}

___x_cmd_go_proxy_unset(){
    # TODO: open /root/.config/go/env: no such file or directory
    ___x_cmd_go___runmain env -u GOPROXY
}

___x_cmd_go_proxy_autocmd(){
    if ___x_cmd websrc is cn; then
        GOPROXY="https://goproxy.cn,direct" ___x_cmd go "$@"
    else
        GOPROXY="direct" ___x_cmd go "$@"
    fi
}
