# shellcheck shell=dash

___x_cmd_rfc_ls(){
    [ "$#" -gt 0 ] ||   set - --app

    local op="$1"; shift
    case "$op" in
        --app)          ___x_cmd_rfc_ls___app      "$@" ;;
        --csv)          ___x_cmd_rfc_ls___csv      "$@" ;;
        --tsv)          ___x_cmd_rfc_ls___tsv      "$@" ;;
        *)              ___x_cmd_rfc_ls___raw      "$@" ;;
    esac
}


___x_cmd_rfc_ls___app(){
    if ___x_cmd_is_stdout2tty && ___x_cmd_runmode_allow_manual ; then
        ___x_cmd_rfc_ls___app_
    else
        ___x_cmd_rfc_ls___csv
    fi
}

___x_cmd_rfc_ls___app_(){
    local ___X_CMD_CSV_APP_SHBIN_CODE=

    local ___X_CMD_CSV_APP_DATA_id=""
    local ___X_CMD_CSV_APP_DATA_title=""
    ___X_CMD_CSV_APP_SHBIN_CODE="xrc rfc; " \
        ___x_cmd csv app --clear --return var \
            --hide_index                            \
            --width "5,60%,-,-,-,-,-,-,-,-,-,-"     \
            --table-width 60%                       \
            --preview author,date,format,status,doi,obsoletes,obsoleted_by,updates,updated_by,also \
            -- ___x_cmd_rfc_ls___csv || return 1

    local id=
    id="${___X_CMD_CSV_APP_DATA_id%%"${___X_CMD_UNSEENCHAR_011}"*}"
    id="${id%%" "*}"; [ -n "$id" ] || return 0
    case "$id" in
        "000"*)      id="${id##000}"   ;;
        "00"*)       id="${id##00}"    ;;
        "0"*)        id="${id##0}"     ;;
    esac
    ___x_cmd rfc txt "$id"
}

___x_cmd_rfc_ls___csv(){
    ___x_cmd_rfc_ls___raw | ___x_cmd_cmds_awk -f "$___X_CMD_ROOT_MOD/rfc/lib/awk/ls.awk"
}

___x_cmd_rfc_ls___tsv(){
    ___x_cmd_rfc_ls___csv | ___x_cmd csv static_tab
}

___x_cmd_rfc_ls___raw(){
    ___x_cmd ccmd 1d -- ___x_cmd curl https://www.rfc-editor.org/rfc/rfc-index.txt
}
