Support format
option provided by client
The format option on bean-query command-line is now an option that the client can pass along. The setting defaults to whatever `bean-query` was going to default to.
This commit is contained in:
parent
e9d0a8b857
commit
6ef1ba0422
2 changed files with 13 additions and 4 deletions
|
@ -15,8 +15,8 @@ sub BeancountQueryInitialize {
|
||||||
die "BEANCOUNT_QUERY: tie failed: is the goffy beancount server running?\n";
|
die "BEANCOUNT_QUERY: tie failed: is the goffy beancount server running?\n";
|
||||||
}
|
}
|
||||||
|
|
||||||
sub BeancountQuerySubmit($) {
|
sub BeancountQuerySubmit($;$) {
|
||||||
my($question) = @_;
|
my($question, $format) = @_;
|
||||||
while (defined $BEANCOUNT_QUERY{fifoName} or defined $BEANCOUNT_QUERY{question}) { sleep 1; }
|
while (defined $BEANCOUNT_QUERY{fifoName} or defined $BEANCOUNT_QUERY{question}) { sleep 1; }
|
||||||
(tied %BEANCOUNT_QUERY)->shlock;
|
(tied %BEANCOUNT_QUERY)->shlock;
|
||||||
if (defined $BEANCOUNT_QUERY{fifoName} or defined $BEANCOUNT_QUERY{question}) {
|
if (defined $BEANCOUNT_QUERY{fifoName} or defined $BEANCOUNT_QUERY{question}) {
|
||||||
|
@ -27,6 +27,7 @@ sub BeancountQuerySubmit($) {
|
||||||
"fifoName: \"$BEANCOUNT_QUERY{fifoName}\" question: \"$BEANCOUNT_QUERY{question}\"!");
|
"fifoName: \"$BEANCOUNT_QUERY{fifoName}\" question: \"$BEANCOUNT_QUERY{question}\"!");
|
||||||
}
|
}
|
||||||
$BEANCOUNT_QUERY{question} = $question;
|
$BEANCOUNT_QUERY{question} = $question;
|
||||||
|
$BEANCOUNT_QUERY{format} = $format if defined $format;
|
||||||
(tied %BEANCOUNT_QUERY)->shunlock;
|
(tied %BEANCOUNT_QUERY)->shunlock;
|
||||||
while (not defined $BEANCOUNT_QUERY{fifoName}) { sleep 1; }
|
while (not defined $BEANCOUNT_QUERY{fifoName}) { sleep 1; }
|
||||||
die "Ceci n'est pas une pipe: BEANCOUNT_QUERY{fifoName}, $BEANCOUNT_QUERY{fifoName}:$!"
|
die "Ceci n'est pas une pipe: BEANCOUNT_QUERY{fifoName}, $BEANCOUNT_QUERY{fifoName}:$!"
|
||||||
|
|
|
@ -87,11 +87,19 @@ while (1) {
|
||||||
} elsif ($query{question} !~ /^[\-\@\w.\s\"\'\_\(\)]+$/) {
|
} elsif ($query{question} !~ /^[\-\@\w.\s\"\'\_\(\)]+$/) {
|
||||||
print STDERR "Query string $query{question} looks suspicious, not running beancount query!\n";
|
print STDERR "Query string $query{question} looks suspicious, not running beancount query!\n";
|
||||||
(tied %query)->shlock;
|
(tied %query)->shlock;
|
||||||
$query{question} = undef;
|
$query{question} = $query{format} = undef;
|
||||||
|
$query{fifoName} = mktemp("REJECTED_beancount-query-fifo-this-file-does-not-exist_${$}_XXXXXXXXX");
|
||||||
|
(tied %query)->shunlock;
|
||||||
|
} elsif (defined $query{format} and $query{format} !~ /^(?:csv|text)$/) {
|
||||||
|
print STDERR "format string $query{format} is not text or csv, not running beancount query!\n";
|
||||||
|
(tied %query)->shlock;
|
||||||
|
$query{question} = $query{format} = undef;
|
||||||
$query{fifoName} = mktemp("REJECTED_beancount-query-fifo-this-file-does-not-exist_${$}_XXXXXXXXX");
|
$query{fifoName} = mktemp("REJECTED_beancount-query-fifo-this-file-does-not-exist_${$}_XXXXXXXXX");
|
||||||
(tied %query)->shunlock;
|
(tied %query)->shunlock;
|
||||||
} elsif (not defined $query{fifoName}) {
|
} elsif (not defined $query{fifoName}) {
|
||||||
my @cmd = ($BEANCOUNT_QUERY_CMD, '-f', 'text', $LOAD_FILE, $query{question});
|
my @cmd = ($BEANCOUNT_QUERY_CMD);
|
||||||
|
push(@cmd, '-f', $query{format}) if defined $query{format};
|
||||||
|
push(@cmd, $LOAD_FILE, $query{question});
|
||||||
print STDERR "Running query: $query{question}\n" if $VERBOSE > 0;
|
print STDERR "Running query: $query{question}\n" if $VERBOSE > 0;
|
||||||
open(my $beancountFH, "-|", @cmd);
|
open(my $beancountFH, "-|", @cmd);
|
||||||
print STDERR "Running ", join(" ", @cmd), "\n" if $VERBOSE > 1;
|
print STDERR "Running ", join(" ", @cmd), "\n" if $VERBOSE > 1;
|
||||||
|
|
Loading…
Reference in a new issue