# shellcheck shell=dash
___x_cmd_path_dev(){
    local op="$1"
    case "$op" in
        ls|set|reset)
            shift; "___x_cmd_path_dev_$op" "$@"
            ;;
        *)
            ___x_cmd_path_dev_ls ;;
    esac
}

___x_cmd_path_dev_reset(){
    ___x_cmd_path_dev_set DEFAULT
}

# running instance
___x_cmd_path_dev_set(){
    local running_instance_name="${1:-DEFAULT}"

    ___X_CMD_PATH_ART="${___X_CMD_PATH}/art/h/$HOSTNAME/r/$running_instance_name"
    ___X_CMD_PATH_CFG="${___X_CMD_PATH}/cfg/h/$HOSTNAME/r/$running_instance_name"
    ___X_CMD_PATH_LOG="${___X_CMD_PATH}/log/h/$HOSTNAME/r/$running_instance_name"
    ___X_CMD_PATH_CACHE="${___X_CMD_PATH}/cache/h/$HOSTNAME/r/$running_instance_name"
    ___X_CMD_PATH_TMP="${___X_CMD_PATH}/tmp/h/$HOSTNAME/r/$running_instance_name"
    ___X_CMD_PATH_SHARED="${___X_CMD_PATH}/shared/h/$HOSTNAME/r/$running_instance_name"
}

___x_cmd_path_dev_ls(){
    printf "%s" \
"ART:    $___X_CMD_PATH_ART
CFG:    $___X_CMD_PATH_CFG
LOG:    $___X_CMD_PATH_LOG
CACHE:  $___X_CMD_PATH_CACHE
TMP:    $___X_CMD_PATH_TMP
SHARED: $___X_CMD_PATH_SHARED
"
}

___x_cmd_path_archive()(
    local output="${1:?Provide tgz destination path}"
    local mod="${2:-min}"
    ___x_cmd_inner_cd "$___X_CMD_PATH" || return $?
    case "$mod" in
        min)    ___x_cmd z "$output" art cfg log ;;
        std)    ___x_cmd z "$output" art cfg log v ;;
        all)    ___x_cmd z "$output" art cfg log v tmp shared ;;
    esac
)

___x_cmd_path_dev_reset
