Documentation ¶
Index ¶
- Constants
- func NewLoggerFromConfig(cfg *LoggerConfig) (log.Logger, error)
- type App
- func (a *App) AdditionalConfigs() map[string]*configuration.Configuration
- func (a *App) AdditionalFlagSets() map[string]*flag.FlagSet
- func (a *App) Config() *configuration.Configuration
- func (a *App) Daemon() daemon.Daemon
- func (a *App) FlagSet() *flag.FlagSet
- func (a *App) ForEachComponent(f ComponentForEachFunc)
- func (a *App) Info() *Info
- func (a *App) IsComponentEnabled(identifier string) bool
- func (a *App) Parameters() *ParametersApp
- func (a *App) Run()
- func (a *App) Shutdown()
- func (a *App) Start()
- type Callback
- type Component
- type ComponentForEachFunc
- type ComponentParams
- type ConfigurationSet
- type ConfigurationSets
- type Info
- type InitComponent
- type InitConfigParamsFunc
- type InitFunc
- type IsEnabledFunc
- type LoggerConfig
- type Option
- type Options
- type ParametersApp
- type ProvideFunc
Constants ¶
const (
DefaultFlagSetName = "appConfig"
)
Variables ¶
This section is empty.
Functions ¶
func NewLoggerFromConfig ¶
func NewLoggerFromConfig(cfg *LoggerConfig) (log.Logger, error)
Types ¶
type App ¶
func (*App) AdditionalConfigs ¶
func (a *App) AdditionalConfigs() map[string]*configuration.Configuration
func (*App) Config ¶
func (a *App) Config() *configuration.Configuration
func (*App) ForEachComponent ¶
func (a *App) ForEachComponent(f ComponentForEachFunc)
ForEachComponent calls the given ComponentForEachFunc on each loaded component.
func (*App) IsComponentEnabled ¶
IsComponentEnabled returns whether the component is enabled.
func (*App) Parameters ¶
func (a *App) Parameters() *ParametersApp
type Component ¶
type Component struct { log.Logger // The name of the component. Name string // The config parameters for this component. Params *ComponentParams // The function to call to initialize the component dependencies. DepsFunc interface{} // InitConfigParams gets called in the init stage of app initialization. // This can be used to provide config parameters even if the component is disabled. InitConfigParams InitConfigParamsFunc // IsEnabled gets called to check whether the component is enabled. IsEnabled IsEnabledFunc // Provide gets called in the provide stage of app initialization (enabled components only). Provide ProvideFunc // Configure gets called in the configure stage of app initialization (enabled components only). Configure Callback // Run gets called in the run stage of app initialization (enabled components only). Run Callback // WorkerPool gets configured and started automatically for each component (enabled components only). WorkerPool *workerpool.WorkerPool // contains filtered or unexported fields }
Component is something which extends the App's capabilities.
func (*Component) Identifier ¶
type ComponentForEachFunc ¶
ComponentForEachFunc is used in ForEachComponent. Returning false indicates to stop looping.
type ComponentParams ¶
type ComponentParams struct { // Handler to add configuration parameters to the default config. Params map[string]any // Handler to add configuration parameters to the additional configs. AdditionalParams map[string]map[string]any // The configuration values to mask. Masked []string }
ComponentParams defines the parameters configuration of a component.
type ConfigurationSet ¶
type ConfigurationSet struct {
// contains filtered or unexported fields
}
type ConfigurationSets ¶
type ConfigurationSets []*ConfigurationSet
func (ConfigurationSets) ConfigsMap ¶
func (c ConfigurationSets) ConfigsMap() map[string]*configuration.Configuration
func (ConfigurationSets) FlagSets ¶
func (c ConfigurationSets) FlagSets() []*flag.FlagSet
func (ConfigurationSets) FlagSetsMap ¶
func (c ConfigurationSets) FlagSetsMap() map[string]*flag.FlagSet
type InitComponent ¶
type InitComponent struct { *Component NonHiddenFlags []string // Init gets called in the initialization stage of the app. Init InitFunc // The additional configs this InitComponent brings to the app. AdditionalConfigs []*ConfigurationSet }
InitComponent is the module initializing configuration of the app. An App can only have one of such modules.
type InitConfigParamsFunc ¶
InitConfigParamsFunc gets called with a dig.Container.
type IsEnabledFunc ¶
IsEnabledFunc gets called to check whether the Compoment is enabled. It gets called with a dig.Container and returns true if the Compoment is enabled.
type LoggerConfig ¶
type LoggerConfig struct { // Name is the optional name of the logger instance. All log messages are prefixed with that name. Name string `default:"" json:"name" usage:"the optional name of the logger instance. All log messages are prefixed with that name."` // Level is the minimum enabled logging level. // The default is "info". Level string `default:"info" json:"level" usage:"the minimum enabled logging level"` // TimeFormat sets the logger's timestamp format. Valid values are "layout", "ansic", "unixdate", "rubydate", // "rfc822", "rfc822z", "rfc850", "rfc1123", "rfc1123z", "rfc3339", "rfc3339nano", "kitchen", "stamp", "stampmilli", // "stampmicro", "stampnano", "datetime", "dateonly", "timeonly" and "iso8601". // The default is "rfc3339". TimeFormat string `` /* 182-byte string literal not displayed */ // OutputPaths is a list of URLs, file paths or stdout/stderr to write logging output to. // The default is ["stdout"]. OutputPaths []string `default:"stdout" json:"outputPaths" usage:"a list of file paths or stdout/stderr to write logging output to"` }
LoggerConfig holds the settings to configure a logger instance.
type Option ¶
type Option func(opts *Options)
Option is a function setting a Options option.
func WithComponents ¶
WithComponents sets the components.
func WithInitComponent ¶
func WithInitComponent(initComponent *InitComponent) Option
WithInitComponent sets the init component.
func WithUsageText ¶
WithUsageText overwrites the default usage text of the app.
func WithVersionCheck ¶
WithVersionCheck enables the GitHub version check.
type Options ¶
type Options struct {
// contains filtered or unexported fields
}
Options defines options for an App.
type ParametersApp ¶
type ParametersApp struct {
CheckForUpdates bool `default:"true" usage:"whether to check for updates of the application or not"`
}
type ProvideFunc ¶
ProvideFunc gets called with a dig.Container.