# shellcheck shell=dash

___x_cmd_asdf___addpath(){
    [ -d "$___X_CMD_ASDF_BIN_PATH"  ] || return 0
    ___x_cmd path rm "$___X_CMD_ASDF_BIN_PATH"          || true
    ___x_cmd path rm "$___X_CMD_ASDF_DATA_PATH/shims"   || true
    PATH="$PATH":"$___X_CMD_ASDF_BIN_PATH":"$___X_CMD_ASDF_DATA_PATH/shims"
}

___x_cmd_asdf___is_activated(){
    [ -f "$___X_CMD_ROOT_BOOT/asdf" ]
}

___x_cmd_asdf___activate_auto(){
    if [ -f "$___X_CMD_ROOT_BOOT/asdf.disable" ]; then
        asdf:info "Asdf is disabled mannually, to activate run 'x asdf --activate'"
        return 1
    fi

    ___x_cmd_asdf___activate
}

___x_cmd_asdf___activate(){
    ___x_cmd_asdf___addpath

    [ ! -f "$___X_CMD_ROOT_BOOT/asdf.disable" ] || {
        asdf:info "Removing file -> $___X_CMD_ROOT_BOOT/asdf.disable"
        ___x_cmd_cmds rm "$___X_CMD_ROOT_BOOT/asdf.disable" || return $?
    }

    ___x_cmd ensurefp "$___X_CMD_ROOT_BOOT/asdf"
    printf "" >"$___X_CMD_ROOT_BOOT/asdf"


    asdf:info "Asdf activated, if you want to deactivate, run 'x asdf --deactivate'"
}

___x_cmd_asdf___deactivate(){
    ___x_cmd path rm "$___X_CMD_ASDF_BIN_PATH"
    ___x_cmd path rm "$___X_CMD_ASDF_DATA_PATH/shims"

    [ ! -f "$___X_CMD_ROOT_BOOT/asdf" ] || {
        asdf:info "Removing file -> $___X_CMD_ROOT_BOOT/asdf"
        ___x_cmd_cmds rm "$___X_CMD_ROOT_BOOT/asdf" || return $?
    }

    ___x_cmd mkdirp "$___X_CMD_ROOT_BOOT"
    printf "" >"$___X_CMD_ROOT_BOOT/asdf.disable"

    asdf:info "Asdf deactivate successfully."
}
