Bug 33050: Allow to specify quote char in runreport.pl

Add to script misc/cronjobs/runreport.pl quote char arg (only for CSV).
See perl doc https://metacpan.org/pod/Text::CSV#new

This patch also adds missing '--separator' in POD.

Test plan :
1 - Write a SQL report
2 - perl misc/cronjobs/runreport.pl --format csv 1 (or correct report number)
3 - Note you get double quotes
4 - Apply patch
5 - Repeat #2 - no change
6 - perl misc/cronjobs/runreport.pl --format csv --quote "'" 1
7 - Now it is single quote delimited
8 - perl misc/cronjobs/runreport.pl --format tsv --separator "'" 1
9 - Error is reported, you cannot set quote unless csv
10 - Try empty string as quote

Signed-off-by: David Nind <david@davidnind.com>
Signed-off-by: Katrin Fischer <katrin.fischer.83@web.de>
Signed-off-by: Tomas Cohen Arazi <tomascohen@theke.io>
This commit is contained in:
Fridolin Somers 2023-02-22 20:40:14 -10:00 committed by Tomas Cohen Arazi
parent 2b6ec7064e
commit 4d604ac2a9
Signed by: tomascohen
GPG key ID: 0A272EA1B2F3C15F

View file

@ -65,6 +65,8 @@ runreport.pl [ -h | -m ] [ -v ] reportID [ reportID ... ]
--subject=s subject for the e-mail
--param=s parameters for the report
--store-results store the result of the report
--separator separator character for csv
--quote quote character for csv
--csv-header add column names as first line of csv output
@ -95,6 +97,11 @@ Current options are text, html, csv, and tsv. At the moment, text and tsv both p
Separator character, only for csv format. Default to comma.
=item B<--quote>
Quote character, only for csv format. Default to double quote.
Empty string is allowed.
=item B<--email>
Whether to use e-mail (implied by --to or --from).
@ -191,6 +198,7 @@ my $quote = '"';
my $store_results = 0;
my $csv_header = 0;
my $csv_separator = "";
my $csv_quote = "";
my $username = undef;
my $password = undef;
@ -204,6 +212,7 @@ GetOptions(
'verbose' => \$verbose,
'format=s' => \$format,
'separator=s' => \$csv_separator,
'quote=s' => \$csv_quote,
'to=s' => \$to,
'from=s' => \$from,
'subject=s' => \$subject,
@ -237,6 +246,14 @@ if ($csv_separator) {
}
}
if ($csv_quote) {
if ( $format eq 'csv' ) {
$quote = "$csv_quote";
} else {
print STDERR "Cannot specify quote if not using CSV format\n";
}
}
if ($format eq 'tsv' || $format eq 'text') {
$format = 'csv';
$separator = "\t";