# shellcheck shell=dash

xrc:mod:lib     root        repoint

___x_cmd_root___main(){
    local op="$1"
    case "$op" in
        ls|set|reset|cleanup|repoint)
            shift; "___x_cmd_root_$op" "$@"
            ;;
        -h|--help)
            shift; ___x_cmd help -m root "$@"; return ;;
        *)
            ___x_cmd_root_ls ;;
    esac
}

___x_cmd_root_reset(){
    ___x_cmd_root_set DEFAULT
}

___x_cmd_root_ls(){
    printf "%s" \
"V:          $___X_CMD_ROOT_V
ROOT:       $___X_CMD_ROOT
CODE:       $___X_CMD_ROOT_CODE
ADV:        $___X_CMD_ROOT_ADV
MOD:        $___X_CMD_ROOT_MOD
METADATA:   $___X_CMD_ROOT_METADATA
GDATA:      $___X_CMD_ROOT_GDATA
DATA:       $___X_CMD_ROOT_DATA
USR:        $___X_CMD_ROOT_USR
ART:        $___X_CMD_ROOT_ART
GCFG:       $___X_CMD_ROOT_GCFG
CFG:        $___X_CMD_ROOT_CFG
LOG:        $___X_CMD_ROOT_LOG
CACHE:      $___X_CMD_ROOT_CACHE
TMP:        $___X_CMD_ROOT_TMP
SHARED:     $___X_CMD_ROOT_SHARED
"
}

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


