Documentation
¶
Overview ¶
Package config holds CLI configuration.
Index ¶
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Config ¶
type Config struct {
// Version is the config version. This will allow sq to
// upgrade config files if needed.
Version string `yaml:"version" json:"version"`
// Defaults contains default settings, such as output format.
Defaults Defaults `yaml:"defaults" json:"defaults"`
// Sources is the set of data sources.
Sources *source.Set `yaml:"sources" json:"sources"`
// Ext holds sq config extensions, such as user driver config.
Ext Ext `yaml:"-" json:"-"`
}
Config holds application config/session data.
type Defaults ¶
type Defaults struct {
Timeout time.Duration `yaml:"timeout" json:"timeout"`
Format Format `yaml:"output_format" json:"output_format"`
Header bool `yaml:"output_header" json:"output_header"`
}
Defaults contains sq default values.
type DiscardStore ¶
type DiscardStore struct {
}
DiscardStore implements Store but its Save method is no-op and Load always returns a new empty Config. Useful for testing.
func (DiscardStore) Load ¶
func (DiscardStore) Load() (*Config, error)
Load returns a new empty Config.
type Ext ¶
type Ext struct {
UserDrivers []*userdriver.DriverDef `yaml:"user_drivers" json:"user_drivers"`
}
Ext holds additional config (extensions) loaded from other config files, e.g. ~/.config/sq/ext/*.sq.yml
type Format ¶
type Format string
Format is a sq output format such as json or xml.
const ( FormatJSON Format = "json" FormatJSONL Format = "jsonl" FormatJSONA Format = "jsona" FormatTable Format = "table" FormatRaw Format = "raw" FormatHTML Format = "html" FormatMarkdown Format = "markdown" FormatXLSX Format = "xlsx" FormatXML Format = "xml" FormatCSV Format = "csv" FormatTSV Format = "tsv" )
Output format values.
func (*Format) UnmarshalText ¶
UnmarshalText implements encoding.TextUnmarshaler.
type Store ¶
type Store interface {
// Save writes config to the store.
Save(cfg *Config) error
// Load reads config from the store.
Load() (*Config, error)
// Location returns the location of the store, typically
// a file path.
Location() string
}
Store saves and loads config.
type YAMLFileStore ¶
type YAMLFileStore struct {
// Path is the location of the config file
Path string
// If HookLoad is non-nil, it is invoked by Load
// on Path's bytes before the YAML is unmarshaled.
// This allows expansion of variables etc.
HookLoad func(data []byte) ([]byte, error)
// ExtPaths holds locations of potential ext config, both dirs and files (with suffix ".sq.yml")
ExtPaths []string
}
YAMLFileStore provides persistence of config via YAML file.
func (*YAMLFileStore) FileExists ¶
func (fs *YAMLFileStore) FileExists() bool
FileExists returns true if the backing file can be accessed, false if it doesn't exist or on any error.
func (*YAMLFileStore) Load ¶
func (fs *YAMLFileStore) Load() (*Config, error)
Load reads config from disk.
func (*YAMLFileStore) Location ¶
func (fs *YAMLFileStore) Location() string
Location implements Store.
func (*YAMLFileStore) Save ¶
func (fs *YAMLFileStore) Save(cfg *Config) error
Save writes config to disk.
func (*YAMLFileStore) String ¶
func (fs *YAMLFileStore) String() string