# shellcheck shell=dash

___x_cmd_tmux___pipe2code(){
    local panel_base_index="$(___x_cmd___tmux_origin show-options -g pane-base-index)"
    panel_base_index="${panel_base_index##* }"

    PANEL_BASE_INDEX="$panel_base_index" ___x_cmd_cmds_awk  \
        -f "$___X_CMD_ROOT_MOD/awk/lib/core.awk"            \
        -f "$___X_CMD_ROOT_MOD/awk/lib/j/json.awk"          \
        -f "$___X_CMD_ROOT_MOD/awk/lib/j/jiter.awk"         \
        -f "$___X_CMD_ROOT_MOD/tmux/lib/plan/conf.awk"
}

___x_cmd_tmux_loadcode_(){
    local file="${1}"
    [ -n "$file" ] || ___x_cmd_tmux_load___default
    [ -f "$file" ] || { x:info -h "Create a new session? Run command \`x tmux :<session_name>\`" "Configure File Not Found. ___x_cmd_tmux_load() Exit 1"; return 1; }

    local code=""
    if ! code="$(
        if [ "$file" != "${file%.json}" ]; then
            ___x_cmd_cmds cat "$file"
        else
            <"$file" ___x_cmd y2j
        fi | ___x_cmd_tmux___pipe2code
    )"; then
        x:error "Loading failure."
    fi

    x_="$code"
}

___x_cmd_tmux_load(){
    local x_
    ___x_cmd_tmux_loadcode_ "$@" || return $?
    eval "$x_"
}

___x_cmd_tmux_load___default(){
    local IFS=" "; local f="";
    for f in ws.yml ws.json tmux.yml tmux.json; do
        [ ! -f "$f" ] || { file="$f"; return 0; }
    done

    local x_=""
    local wsdir="";    ___x_cmd_wsroot_ || return 1
    wsdir="$x_/.x-cmd"
    local IFS=' '
    for f in ws.yml ws.json tmux.yml tmux.json; do
        if [ ! -f "$wsdir/$f" ]; then
            file="$wsdir/$f"
            return 0
        fi
    done

    return 1
}
