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 {
// Format is the default output format: json, table, etc.
Format Format `yaml:"output_format" json:"output_format"`
// Header determines if a header should be printed (if relevant
// for the output format).
Header bool `yaml:"output_header" json:"output_header"`
// PingTimeout is the allowed time for a ping.
PingTimeout time.Duration `yaml:"ping_timeout" json:"ping_timeout"`
// ShellCompletionTimeout is the time allowed for the shell
// completion callback to execute.
ShellCompletionTimeout time.Duration `yaml:"shell_completion_timeout" json:"shell_completion_timeout"`
}
Defaults contains default config 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