# shellcheck shell=dash
___x_cmd_se_site_ls(){
    [ "$#" -gt 0 ] || set -- --app
    local op="$1"; shift
    case "$op" in
        -h|--help)
            ___x_cmd help -m se site "$@";   return ;;
        --csv|--json|--app)
            ___x_cmd_se_site_ls___"${op#--}" "$@"  ;;
        *)  N=se M="Not such [option=$op]" log:ret:64 ;;
    esac
}

___x_cmd_se_site_ls___app(){
    if ___x_cmd_is_stdout2tty; then
        ___x_cmd_se_site_ls___app_ "$@"
    else
        ___x_cmd_se_site_ls___csv "$@"
    fi

}

___x_cmd_se_site_ls___app_(){
    local ___X_CMD_CSV_APP_DATA_short
    local ___X_CMD_CSV_APP_DATA_name
    local ___X_CMD_CSV_APP_DATA_domain
    [ -f "$___X_CMD_PKG_ROOT_PATH/metadata/$___X_CMD_PKG_VERSION/se/data.csv" ] || return

    ___X_CMD_CSV_APP_SHBIN_CODE="xrc se"    \
    ___x_cmd csv app --return var --clear   \
    ___x_cmd_se_site_ls___csv

    [ -n "$___X_CMD_CSV_APP_DATA_name" ] || return 0

    local name="$___X_CMD_CSV_APP_DATA_name"
    local domain="$___X_CMD_CSV_APP_DATA_domain"
    local id
    ___x_cmd ui select id "Next:"           \
        "browse page to view   \"$name\""   \
        "Exit"

    [ -n "$id" ] || return 1
    case "$id" in
        1)      se:info x open "https://${domain}"
                ___x_cmd open "https://${domain}"
                ;;
        *)      return ;;
    esac
}


___x_cmd_se_site_ls___csv(){
    local datafp="$___X_CMD_PKG_ROOT_PATH/metadata/$___X_CMD_PKG_VERSION/se/data.csv"
    [ -f "$datafp" ] || ___x_cmd pkg update
    ___x_cmd_cmds_cat "$datafp"
}

___x_cmd_se_site_ls___json(){
    ___x_cmd_se_site_ls___csv | ___x_cmd csv tojson
}
