
___x_cmd_nets_exist(){
    local datadir="${1:-"${___X_CMD_NETS_DATA}/latest"}"
    [ -f "${datadir}/all" ]
}

___x_cmd_nets_view(){
    local format=auto

    while [ $# -gt 0 ]; do
        case "$1" in
            -h|--help)              ___x_cmd help -m nets view  "$@";    return 0 ;;
            --csv|--tsv|--auto)     format="${1#--}" ;;
            *)                      break ;;
        esac
        shift
    done

    local topic="${1}"
    [ "$topic" != "route" ] || {
        ___x_cmd route --"${format}"
        return 0
    }

    local datadir="${___X_CMD_NETS_DATA}/latest"
    ___x_cmd_nets___checkdata "$datadir" || return $?
    ___x_cmd_nets_view___"$format"
}

___x_cmd_nets_view___csv(){
    ___x_cmd_nets_view___tsv | ___x_cmd tsv tocsv
}


___x_cmd_nets_view___tsv(){
    ___x_cmd_cmds cat "$datadir/${topic:-internet}"
}

___x_cmd_nets_view___auto(){
    if ___x_cmd_is_stdout2tty; then
        ___x_cmd_nets_view___app    "$@"
    else
        ___x_cmd_nets_view___tsv    "$@"
    fi
}

___x_cmd_nets_view___app(){
    if [ -z "$topic" ]; then
        topic="$(
        {
            ___x_cmd_nets ls
            printf "[operation] EXIT\n"
            printf "[operation] UPDATE DATA\n"
        } | ___x_cmd_cmds awk '
            BEGIN{ print "internet"; }
            $1=="internet"{ next; }
            { print; }
        ' | ___x_cmd pick --ask "Select the table avaiable")" || return $?
    fi

    [ -n "$topic" ] || return 1     # Notice, this is a temporary fix.

    [ "$topic" != "[operation] EXIT" ] || return 0
    [ "$topic" != "route" ] || {
        ___x_cmd route
        return 0
    }

    if [ "$topic" = "[operation] UPDATE DATA" ]; then
        ___x_cmd nets update
        return
    fi

    ___x_cmd_nets_view___csv | ___x_cmd csv app --clear
}

