# shellcheck shell=dash

___x_cmd_install___fz(){

    while [ $# -gt 0 ]; do
        case "$1" in
            -h|--help)      ___x_cmd help -m install --fz "$@"; return 0 ;;
            *)              break ;;
        esac
    done

    local software=
    software="$( ___X_CMD_RUNMODE="$___X_CMD_RUNMODE" ___x_cmdexe install --fzdata "$@" )"

    [ -n "$software" ] || {
        install:info "Exit because no software is selected."
        return 1
    }
    install:info "Selected software -> [$software]"

    ___x_cmd_install "$software"
}

___x_cmd_install___fz_data(){
    {
        ___x_cmd install --ls --tsv \
            | ___x_cmd_cmds awk -F'\t' 'FNR>1' OFS='\t'
        ___x_cmd skill lr --tsv \
            | ___x_cmd_cmds awk -F'\t' 'FNR>1 && $1 !~ /^mcp\// { $1 = "skill/" $1; print }' OFS='\t'
    } \
    | ___x_cmd_cmds awk -F'\t' -f "$___X_CMD_ROOT_MOD/install/lib/awk/fz_data.awk" \
    | ___x_cmd fzf  \
        --ansi --reverse --height='80%' --query="$*"                                                    \
        --bind='ctrl-w:toggle-preview-wrap'                                                             \
        --bind='ctrl-r:change-preview-window(right,70%|down,40%,99%,border-horizontal|hidden|right)'    \
        --preview='___x_cmdexe install --fzpreview {1}'                                                 \
        --preview-window=right:70%:wrap \
        --delimiter ' ' --nth 1 \
    | ___x_cmd_cmds awk '{print $1}'
}

___x_cmd_install___fz_preview(){
    case "$1" in
        skill/*)    ___x_cmd skill      info         "${1#*/}"  ;;
        mcp/*)      ___x_cmd skill      info         "${1}"     ;;
        *)          ___x_cmd install --printinfo     "${1}"     ;;
    esac
}

