# shellcheck shell=dash

xrc:mod:lib     tsv     header

___x_cmd_tsv___main(){
    [ "$#" -gt 0 ] ||   set -- -h
    local op="$1"; shift
    case "$op" in
        -h|--help)      ;;
        header|\
        tocsv|fromcsv|awk|addcol)
            ___x_cmd_tsv_"$op" "$@"
            ;;
    esac
}

# convert the data into tsv ...
# this will rely on the csv module, or csv rely on tsv module
# tsv module is very suitable for the output .. but not good for the text processing

# but tsv is very suitable for the awk processing

# x ps --tsv | x tsv awk ''
# x ps --tsv-awk ''
___x_cmd_tsv_awk(){
    ___x_cmd_cmds awk -f "$___X_CMD_ROOT_MOD/tsv/lib/awk/tsvo.awk" "$@"
}

___x_cmd_tsv_fromcsv(){
    local op="$1"
    case "$op" in
        -h|--help)  ___x_cmd help -m tsv fromcsv; return ;;
        *)
                    [ ! -t 0 ] || {
                        ___x_cmd help -m tsv fromcsv >&2
                        return 64
                    }
                    ;;
    esac

    ___x_cmd cawk -i -m j/json,csv \
        -f "$___X_CMD_ROOT_MOD/tsv/lib/awk/csv2tsv.awk"
}

___x_cmd_tsv_tocsv(){
    local op="$1"
    case "$op" in
        -h|--help)  ___x_cmd help -m tsv tocsv; return ;;
        *)
                    [ ! -t 0 ] || {
                        ___x_cmd help -m tsv tocsv >&2
                        return 64
                    }
                    ;;
    esac

    ___x_cmd_cmds awk -v FS="\t" \
        -f "$___X_CMD_ROOT_MOD/awk/lib/core.awk" \
        -f "$___X_CMD_ROOT_MOD/awk/lib/csv.awk" \
        -f "$___X_CMD_ROOT_MOD/tsv/lib/awk/tsv2csv.awk"
}

___x_cmd_tsv_addcol(){
    ___x_cmd_cmds awk -v FS="\t" \
        -f "$___X_CMD_ROOT_MOD/tsv/lib/awk/addcol.awk"
}
