Batch mode
suhlig opened this issue · comments
Thanks for this project; very useful.
I would be interested in running this in batch mode; i.e. specifying the query on stdin
or in a file. I could then make csv-sql
part of shell pipelines and run it in continuous integration.
Something like this syntax comes to mind:
$ echo '.export(results.csv) SELECT COUNT(*) from t;' | csvsql file.csv
Alternatively, reading the query from a file would also be useful:
$ echo '.export(results.csv) SELECT COUNT(*) from t;' > query.sql
$ csvsql file.csv --load-query-from query.sql
If --load-query-from
would accept -
as a symbol for stdin
, the line would look like this:
$ echo '.export(results.csv) SELECT COUNT(*) from t;' | csvsql file.csv --load-query-from -
Personally, the first option (read query from stdin
if it's not a TTY) would be my preference.
I think what I'd go with is --query
which takes a SQL string (not a path to a file). One can easily specify do csvsql file.csv --query $(cat foo.sql)
then.