This release significantly overhauls sq
's config mechanism (#199).
For an overview, see the new config docs.
Alas, this release has several minor breaking changes ☢️.
Added
sq config ls
shows config.sq config get
gets individual config option.sq config set
sets config values.sq config edit
edits config.- Editor can be specified via
$EDITOR
or$SQ_EDITOR
.
- Editor can be specified via
sq config location
prints the location of the config dir.--config
flag is now honored globally.- Many more knobs are exposed in config.
- Logging is much more configurable. There are new knobs:
There are also equivalent flags (
$ sq config set log true $ sq config set log.level INFO $ sq config set log.file /var/log/sq.log
--log
,--log.file
and--log.level
) and
envars (SQ_LOG
,SQ_LOG_FILE
andSQ_LOG_LEVEL
). - Several more commands support YAML output:
Changed
- The structure of
sq
's config file (sq.yml
) has changed. The config
file is automatically upgraded when using the new version. - The default location of the
sq
log file has changed. The new location
is platform-dependent. Usesq config get log.file -v
to view the location,
orsq config set log.file /path/to/sq.log
to set it. - ☢️ Envar
SQ_CONFIG
replacesSQ_CONFIGDIR
. - ☢️ Envar
SQ_LOG_FILE
replacesSQ_LOGFILE
. - ☢️ Format flag
--table
is renamed to--text
. This is changed because while the
output is mostly in table format, sometimes it's just plain text. Thus
table
was not quite accurate. - ☢️ The flag to explicitly specify a driver when piping input to
sq
has been
renamed from--driver
to--ingest.driver
. This change aligns
the naming of the ingest options and reduces ambiguity.# previously $ cat mystery.data | sq --driver=csv '.data' # now $ cat mystery.data | sq --ingest.driver=csv '.data'
- ☢️
sq add
no longer has the generic--opts x=y
mechanism. This flag was
ambiguous and confusing. Instead, use explicit option flags.# previously $ sq add ./actor.csv --opts=header=false # now $ sq add ./actor.csv --ingest.header=false
- ☢️ The short form of the
sq add --handle
flag has been changed from-h
to
-n
. While this is not ideal, the-h
shorthand is already in use everywhere
else as the short form of--header
.# previously $ sq add ./actor.csv -h @actor # now $ sq add ./actor.csv -n @actor
- ☢️ The
--pretty
flag has been removed. Its only previous use was with the
json
format, where if--pretty=false
would output the JSON in compact form.
To better align with jq, there is now a--compact
/-c
flag that behaves
identically tojq
. - ☢️ Because of the above
--compact
/-c
flag, the short form of the--csv
flag is changing from-c
to-C
. It's an unfortunate situation, but alignment
with jq's behavior is an overarching principle that justifies the change.