# shellcheck shell=dash disable=SC2034

___x_cmd_csv_header(){
    local X_help_cmd='x help -m csv header'; help:arg-null:parse

    local op="$1"; shift
    case "$op" in
        --add)          ___x_cmd_csv_header___add "$@"  ;;
        --mod)          ___x_cmd_csv_header___mod "$@"  ;;
        *)              ___x_cmd_csv_header_main "$op" "$@"   ;;
    esac
}

# TODO: see whether there is a , or nl
___x_cmd_csv_header___add(){
    local IFS=" "
    local data="$*"
    case "$data" in
        *","*|*"$___X_CMD_UNSEENCHAR_NEWLINE"*)
            # TODO: Using csv quote
            local IFS=,
            printf "%s\n" "$*"
            ;;
        *)
            local IFS=,
            printf "%s\n" "$*"
            ;;
    esac
    ___x_cmd_cmds_cat
}

___x_cmd_csv_header___mod(){
    local IFS="$___X_CMD_UNSEENCHAR_001"
    local args="$*"
    IFS=" "
    ___x_cmd cawk -E args -m csv -f "$___X_CMD_ROOT_MOD/csv/lib/awk/header_mod.awk"
}

___x_cmd_csv_header_main(){
    local mode
    case "$1" in
        *=*)    mode=mod    ;;
        *)      mode=add    ;;
    esac

    ___x_cmd_csv_header___"$mode" "$@"
}
