# shellcheck shell=dash

___x_cmd log init asdf

xrc:mod:lib     asdf      \
    __download __install  __activate  __runcmd  \
    ls  use  ddgo

___x_cmd_asdf___main(){
    [ $# -gt 0 ] ||     set -   la

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

        use|unuse)      ___x_cmd_asdf_"$op"                 "$@" ;;
        ls)             ___x_cmd_asdf_ls                    "$@" ;;
        la)             ___x_cmd_asdf_la                    "$@" ;;

        --download|--install|--uninstall|\
        --upgrade|--remove|\
        --activate|--deactivate)
                        ___x_cmd_asdf___"${op#--}"          "$@" ;;

        :|ddgo)         ___x_cmd_asdf_ddgo                  "$@" ;;
        ::|ddgoai)      ___x_cmd_asdf_ddgoai                "$@" ;;

        --plugininfo)   ___x_cmd_asdf___plugin_info         "$@" ;;
        --fzdata)       ___x_cmd_asdf_ls_fz_data            "$@" ;;

        --|--runmain)   ___x_cmd_asdf___runmain             "$@" ;;
        --runcmd)       ___x_cmd_asdf___runcmd              "$@" ;;
        *)              ___x_cmd_asdf___runmain "$op"       "$@" ;;
    esac
}

___x_cmd_asdf___init(){
    ___X_CMD_ASDF_DOWNLOAD_PATH="$___X_CMD_ROOT_DATA/asdf/download"
    ___X_CMD_ASDF_BIN_PATH="$HOME/.asdf/bin"
    ___X_CMD_ASDF_DATA_PATH="${ASDF_DATA_DIR:-$HOME/.asdf}"
    ___X_CMD_ASDF_BIN="asdf"

    ___x_cmd ensurefp "$___X_CMD_ASDF_BIN_PATH"
}

___x_cmd_asdf___init

