
___x_cmd_install_printinfo(){
    [ $# -gt 0 ]    ||  set -- --help

    local fmt=detail
    while [ $# -gt 0 ]; do
        case "$1" in
            -h|--help)  ___x_cmd help -m install --printinfo "$@"; return 0 ;;
            --detail|--json|--yml|--raw)
                        fmt="${1#--}" ;   shift ;;
            # --os)        os="${2}"; arg:2:shift ;;
            *)              break ;;
        esac
    done

    ___x_cmd_install_printinfo___"$fmt" "$@"
}

___x_cmd_install_printinfo___raw(){
    local software="$1";    [ -n "$software" ] || return 1
    ___x_cmd_install_update___check || return $?
    ___x_cmd cawk -v FS='\t' -v OFS='\t' -v name="$software" 'NR > 1 && $1 == name' <"$___X_CMD_INSTALL_DATA_ALLTSV"
}

___x_cmd_install_printinfo___json(){
    local software="${1}";  [ -n "$software" ] || return 1

    local line; line="$( ___x_cmd_install_printinfo___raw "$software" )" || {
        install:error "Installation recipe not found -> $1"
        install:info --tip "x pkg update" "The index may be out of date. You can trigger an index update and try again."
        return 1
    }

    printf "%s\n" "$line" | ___x_cmd_cmds awk -F'\t' \
        -f "$___X_CMD_ROOT_MOD/awk/lib/core.awk" \
        -f "$___X_CMD_ROOT_MOD/install/lib/awk/tojson.awk"
}

___x_cmd_install_printinfo___yml(){
   ___x_cmd_install_printinfo___json "$@" | ___x_cmd j2y
}

___x_cmd_install_printinfo___detail(){
    local software="${1}";  [ -n "$software" ] || return 1

    local x_; local _os;local _arch;
    local _release; local _wsl;
     ___x_cmd_install_osarch_ || return $?

    ___x_cmd_install_printinfo___json "${software}" | \
        ___x_cmd_cmds_awk -v NAME="${software}" \
            -v OS="$_os"  -v ARCH="$_arch"    \
            -v RELEASE="$_release"       -v wsl="$_wsl"                \
            -v ___X_CMD_LANG="${___X_CMD_LANG}"                        \
            -f "$___X_CMD_ROOT_MOD/awk/lib/core.awk"                   \
            -f "$___X_CMD_ROOT_MOD/awk/lib/ui/ui.awk"                  \
            -f "$___X_CMD_ROOT_MOD/awk/lib/sh.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/install/lib/awk/printinfo.awk"
}

___x_cmd_install_osarch_(){

    [ -n "$_os" ] || {
        ___x_cmd os name_ ;     _os="$x_"
    }

    [ -n "$_arch" ] || {
        ___x_cmd os arch_ ;     _arch="$x_"
    }

    local info
    info="$( ___x_cmd os release )"
    _release="${info%%
*}"
    _wsl="${info%%-WSL?}"
    _wsl="${info##"${_wsl}"}"
}


___x_cmd_install_printcmd(){
    [ $# -gt 0 ]    ||  set -- --help

    local fmt=detail
    while [ $# -gt 0 ]; do
        case "$1" in
            -h|--help)  ___x_cmd help -m install --printcmd "$@"; return 0 ;;
            --detail|--json|--yml|--raw)
                        fmt="${1#--}" ;   shift ;;
            # --os)       _os="${2}"; arg:2:shift ;;
            *)              break ;;
        esac
    done

    ___x_cmd_install_printcmd___"$fmt" "$@"
}

___x_cmd_install_printcmd___raw(){
    local software="$1";    [ -n "$software" ] || return 1
    ___x_cmd_install_update___check || return $?
    ___x_cmd cawk -v FS='\t' -v OFS='\t' -v name="$software" 'NR > 1 && $1 == name { print $1 "\t" $NF }' <"$___X_CMD_INSTALL_DATA_ALLTSV"
}

___x_cmd_install_printcmd___json(){
    ___x_cmd_install_printcmd___raw "$@" | ___x_cmd cawk -v FS='\t' -v OFS='\t' '{ print $NF }'
}

___x_cmd_install_printcmd___yml(){
    ___x_cmd_install_printcmd___json "$@" | ___x_cmd j2y
}

___x_cmd_install_printcmd___detail(){
    local software="${1}";  [ -n "$software" ] || return 1

    local x_; local _os;local _arch;
    local _release; local _wsl;
     ___x_cmd_install_osarch_ || return $?

    ___x_cmd_install_printinfo___json "${software}" | \
        ___x_cmd_cmds_awk -v NAME="${software}" \
            -v OS="$_os"  -v ARCH="$_arch"    \
            -v RELEASE="$_release"       -v wsl="$_wsl"                \
            -f "$___X_CMD_ROOT_MOD/awk/lib/core.awk"                   \
            -f "$___X_CMD_ROOT_MOD/awk/lib/ui/ui.awk"                  \
            -f "$___X_CMD_ROOT_MOD/awk/lib/sh.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/install/lib/awk/printcmd.awk"
}

___x_cmd_install_printcmd0(){
    local tool="$1";        [ -n "$tool" ]      || return 1
    local software="$2";    [ -n "$software" ]  || return 1

    local x_; local _os;local _arch;
    local _release; local _wsl;
     ___x_cmd_install_osarch_ || return $?

    ___x_cmd_install_printinfo___json "${software}" | \
        ___x_cmd_cmds_awk -v NAME="${software}" -v TOOL="$tool" \
            -v OS="$_os"  -v ARCH="$_arch"                      \
            -v RELEASE="$_release"       -v wsl="$_wsl"         \
            -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/install/lib/awk/printcmd0.awk"
}


___x_cmd_install_printtool(){
    local software="${1}";  [ -n "$software" ] || return 1

    local x_; local _os;local _arch;
    local _release; local _wsl;
     ___x_cmd_install_osarch_ || return $?

    ___x_cmd_install_printinfo___json "${software}" | \
        ___x_cmd_cmds_awk -v NAME="${software}" \
            -v OS="$_os"  -v ARCH="$_arch"    \
            -v RELEASE="$_release"       -v wsl="$_wsl"                \
            -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/install/lib/awk/printtool.awk"
}
