# Author:       Li Junhao       l@x-cmd.com
# shellcheck    shell=sh        disable=SC3043,SC2164,SC1091     # xrc

___x_cmd_pipx(){
    case "$1" in
        _x_cmd_advise_json)       cat "$(x advise man which pipx)";;
        *)                        ___x_cmd___pipx_exec "$@" ;;
    esac
}

___x_cmd___pipx_origin(){
    x pkg sphere runpkgbin pipx '1.3.3' bin/pipx "$@"
}

___x_cmd___pipx_exec(){
    local name="$1"; [ $# -gt 0 ] && shift
    case "$name" in
        -*|\
            install|inject|\
            upgrade|upgrade-all|\
            uninstall|uninstall-all|\
            reinstall|reinstall-all|\
            list|run|runpip|\
            ensurepath|environment|completions)
                ___x_cmd___pipx_origin "$name" "$@" ;;
        "") ___x_cmd___pipx_origin ;;
        *)  ___x_cmd___pipx_exec_2 "$name" "$@"
    esac
}

___x_cmd___pipx_exec_2(){
    local name="${1:?Please provide name}"; shift
    if [ -x "$HOME/.local/pipx/venvs/${name}/bin/${name}" ]; then
        "$HOME/.local/pipx/venvs/${name}/bin/${name}" "$@"
        return
    fi

    ___x_cmd___pipx_origin run "$name" "$@"
}

xrc setmain ___x_cmd_pipx
