# shellcheck shell=dash

___x_cmd log init pkgx

xrc:mod:lib     pkgx        __download __install  __activate ddgo ls


___x_cmd_pkgx___main(){
    [ "$#" -gt 0 ] ||   set -- ls

    local op="$1"; shift
    case "$op" in
        -h|--help)      ___x_cmd help -m pkgx       "$@" ;;

        --install)      ___x_cmd_pkgx___install     "$@" ;;
        --uninstall)    ___x_cmd_pkgx___uninstall   "$@" ;;

        --activate)     ___x_cmd_pkgx___activate    "$@" ;;
        --deactivate)   ___x_cmd_pkgx___deactivate  "$@" ;;
        --addpath)      ___x_cmd_pkgx___addpath     "$@" ;;
        --upgrade)      ___x_cmd_pkgx___upgrade          ;;

        ddgo|:)         ___x_cmd_pkgx_ddgo          "$@" ;;

        ls)             ___x_cmd_pkgx_ls            "$@" ;;

        --pkginfo)      ___x_cmd_pkgx___pkginfo     "$@" ;;
        --fzdata)       ___x_cmd_pkgx_ls___fz_data  "$@" ;;

        --|--cmd)       ___x_cmd_pkgx___cmd         "$@" ;;
        *)              ___x_cmd_pkgx___cmd "$op"   "$@" ;;
    esac
}

___x_cmd_pkgx___init(){
    ___X_CMD_PKGX_DOWNLOAD_PATH="$___X_CMD_ROOT_DATA/pkgx/download"
    ___X_CMD_PKGX_BIN_PATH="$HOME/.local/bin"

    # pkgx caches: https://docs.pkgx.sh/appendix/faq#how-do-i-uninstall-pkgx
    if ___x_cmd os is darwin;then
        ___X_CMD_PKGX_CACHE_PATH="$HOME/Library/Caches/pkgx"
    else
        ___X_CMD_PKGX_CACHE_PATH="${XDG_CACHE_HOME:-$HOME/.cache}/pkgx"
    fi
}
___x_cmd_pkgx___init

___x_cmd_pkgx___cmd(){
    if ___x_cmd_hascmd pkgx; then
        ___x_cmd_pkgx___cmd(){  ___x_cmd_cmds pkgx "$@"; }
    else
        ___x_cmd_pkgx___install || return
        ___x_cmd_pkgx___cmd(){ "$___X_CMD_PKGX_BIN_PATH/pkgx" "$@" ; }
    fi
    ___x_cmd_pkgx___cmd "$@"
}
