app

package
v3.0.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 8, 2022 License: Apache-2.0, BSD-2-Clause Imports: 16 Imported by: 0

Documentation

Index

Constants

View Source
const (
	DefaultFlagSetName = "appConfig"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type App

type App struct {
	// contains filtered or unexported fields
}

func New

func New(name string, version string, optionalOptions ...AppOption) *App

func (*App) AdditionalConfigs

func (a *App) AdditionalConfigs() map[string]*configuration.Configuration

func (*App) AdditionalFlagSets

func (a *App) AdditionalFlagSets() map[string]*flag.FlagSet

func (*App) Config

func (a *App) Config() *configuration.Configuration

func (*App) Daemon

func (a *App) Daemon() daemon.Daemon

func (*App) FlagSet

func (a *App) FlagSet() *flag.FlagSet

func (*App) ForEachCoreComponent

func (a *App) ForEachCoreComponent(f CoreComponentForEachFunc)

ForEachCoreComponent calls the given CoreComponentForEachFunc on each loaded core components.

func (*App) ForEachPlugin

func (n *App) ForEachPlugin(f PluginForEachFunc)

ForEachPlugin calls the given PluginForEachFunc on each loaded plugin.

func (*App) Info

func (a *App) Info() *AppInfo

func (*App) IsPluginSkipped

func (a *App) IsPluginSkipped(plugin *Plugin) bool

IsPluginSkipped returns whether the plugin is loaded or skipped.

func (*App) LogDebug

func (a *App) LogDebug(args ...interface{})

LogDebug uses fmt.Sprint to construct and log a message.

func (*App) LogDebugf

func (a *App) LogDebugf(template string, args ...interface{})

LogDebugf uses fmt.Sprintf to log a templated message.

func (*App) LogError

func (a *App) LogError(args ...interface{})

LogError uses fmt.Sprint to construct and log a message.

func (*App) LogErrorAndExit

func (a *App) LogErrorAndExit(args ...interface{})

LogErrorAndExit uses fmt.Sprint to construct and log a message, then calls os.Exit.

func (*App) LogErrorf

func (a *App) LogErrorf(template string, args ...interface{})

LogErrorf uses fmt.Sprintf to log a templated message.

func (*App) LogErrorfAndExit

func (a *App) LogErrorfAndExit(template string, args ...interface{})

LogErrorfAndExit uses fmt.Sprintf to log a templated message, then calls os.Exit.

func (*App) LogFatalAndExit

func (a *App) LogFatalAndExit(args ...interface{})

LogFatalAndExit uses fmt.Sprint to construct and log a message, then calls os.Exit.

func (*App) LogFatalfAndExit

func (a *App) LogFatalfAndExit(template string, args ...interface{})

LogFatalfAndExit uses fmt.Sprintf to log a templated message, then calls os.Exit.

func (*App) LogInfo

func (a *App) LogInfo(args ...interface{})

LogInfo uses fmt.Sprint to construct and log a message.

func (*App) LogInfof

func (a *App) LogInfof(template string, args ...interface{})

LogInfof uses fmt.Sprintf to log a templated message.

func (*App) LogPanic

func (a *App) LogPanic(args ...interface{})

LogPanic uses fmt.Sprint to construct and log a message, then panics.

func (*App) LogPanicf

func (a *App) LogPanicf(template string, args ...interface{})

LogPanicf uses fmt.Sprintf to log a templated message, then panics.

func (*App) LogWarn

func (a *App) LogWarn(args ...interface{})

LogWarn uses fmt.Sprint to construct and log a message.

func (*App) LogWarnf

func (a *App) LogWarnf(template string, args ...interface{})

LogWarnf uses fmt.Sprintf to log a templated message.

func (*App) Parameters

func (a *App) Parameters() *ParametersApp

func (*App) Run

func (a *App) Run()

func (*App) Shutdown

func (a *App) Shutdown()

func (*App) Start

func (a *App) Start()

type AppInfo

type AppInfo struct {
	Name                string
	Version             string
	LatestGitHubVersion string
}

AppInfo provides informations about the app.

type AppOption

type AppOption func(opts *AppOptions)

AppOption is a function setting a AppOptions option.

func WithCoreComponents

func WithCoreComponents(coreComponents ...*CoreComponent) AppOption

WithCoreComponents sets the core components.

func WithDaemon

func WithDaemon(daemon daemon.Daemon) AppOption

WithDaemon sets the used daemon.

func WithInitComponent

func WithInitComponent(initComponent *InitComponent) AppOption

WithInitComponent sets the init component.

func WithPlugins

func WithPlugins(plugins ...*Plugin) AppOption

WithPlugins sets the plugins.

func WithUsageText

func WithUsageText(usageText string) AppOption

WithUsageText overwrites the default usage text of the app.

func WithVersionCheck

func WithVersionCheck(owner string, repository string) AppOption

WithVersionCheck enables the GitHub version check.

type AppOptions

type AppOptions struct {
	// contains filtered or unexported fields
}

AppOptions defines options for an App.

type Callback

type Callback func() error

Callback is a function called without any arguments.

type Component

type Component struct {
	// A reference to the App instance.
	App *App
	// 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{}
	// InitConfigPars gets called in the init stage of app initialization.
	// This can be used to provide config parameters even if the component is disabled.
	InitConfigPars InitConfigParsFunc
	// PreProvide gets called before the provide stage of app initialization.
	// This can be used to force disable other components before they get initialized.
	PreProvide PreProvideFunc
	// 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
	// contains filtered or unexported fields
}

Component is something which extends the App's capabilities.

func (*Component) Daemon

func (c *Component) Daemon() daemon.Daemon

func (*Component) Identifier

func (c *Component) Identifier() string

func (*Component) LogDebug

func (c *Component) LogDebug(args ...interface{})

LogDebug uses fmt.Sprint to construct and log a message.

func (*Component) LogDebugf

func (c *Component) LogDebugf(template string, args ...interface{})

LogDebugf uses fmt.Sprintf to log a templated message.

func (*Component) LogError

func (c *Component) LogError(args ...interface{})

LogError uses fmt.Sprint to construct and log a message.

func (*Component) LogErrorAndExit

func (c *Component) LogErrorAndExit(args ...interface{})

LogErrorAndExit uses fmt.Sprint to construct and log a message, then calls os.Exit.

func (*Component) LogErrorf

func (c *Component) LogErrorf(template string, args ...interface{})

LogErrorf uses fmt.Sprintf to log a templated message.

func (*Component) LogErrorfAndExit

func (c *Component) LogErrorfAndExit(template string, args ...interface{})

LogErrorfAndExit uses fmt.Sprintf to log a templated message, then calls os.Exit.

func (*Component) LogFatalAndExit

func (c *Component) LogFatalAndExit(args ...interface{})

LogFatalAndExit uses fmt.Sprint to construct and log a message, then calls os.Exit.

func (*Component) LogFatalfAndExit

func (c *Component) LogFatalfAndExit(template string, args ...interface{})

LogFatalfAndExit uses fmt.Sprintf to log a templated message, then calls os.Exit.

func (*Component) LogInfo

func (c *Component) LogInfo(args ...interface{})

LogInfo uses fmt.Sprint to construct and log a message.

func (*Component) LogInfof

func (c *Component) LogInfof(template string, args ...interface{})

LogInfof uses fmt.Sprintf to log a templated message.

func (*Component) LogPanic

func (c *Component) LogPanic(args ...interface{})

LogPanic uses fmt.Sprint to construct and log a message, then panics.

func (*Component) LogPanicf

func (c *Component) LogPanicf(template string, args ...interface{})

LogPanicf uses fmt.Sprintf to log a templated message, then panics.

func (*Component) LogWarn

func (c *Component) LogWarn(args ...interface{})

LogWarn uses fmt.Sprint to construct and log a message.

func (*Component) LogWarnf

func (c *Component) LogWarnf(template string, args ...interface{})

LogWarnf uses fmt.Sprintf to log a templated message.

func (*Component) Logger

func (c *Component) Logger() *logger.Logger

Logger instantiates and returns a logger with the name of the component.

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
}

func NewConfigurationSet

func NewConfigurationSet(
	configName string,
	filePathFlagName string,
	filePathFlagProvideName string,
	flagSetName string,
	loadOnlyIfFlagDefined bool,
	loadFlagSet bool,
	loadEnvVars bool,
	defaultConfigPath string,
	shortHand string) *ConfigurationSet

type ConfigurationSets

type ConfigurationSets []*ConfigurationSet

func (ConfigurationSets) ConfigsMap

func (ConfigurationSets) FlagSets

func (c ConfigurationSets) FlagSets() []*flag.FlagSet

func (ConfigurationSets) FlagSetsMap

func (c ConfigurationSets) FlagSetsMap() map[string]*flag.FlagSet

type CoreComponent

type CoreComponent struct {
	*Component
}

CoreComponent is a component essential for app operation. It can not be disabled.

type CoreComponentForEachFunc

type CoreComponentForEachFunc func(coreComponent *CoreComponent) bool

CoreComponentForEachFunc is used in ForEachCoreComponent. Returning false indicates to stop looping.

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 InitConfig

type InitConfig struct {
	EnabledPlugins  []string
	DisabledPlugins []string
	// contains filtered or unexported fields
}

InitConfig describes the result of a app initialization.

func (*InitConfig) ForceDisableComponent

func (ic *InitConfig) ForceDisableComponent(identifier string)

ForceDisableComponent is used to force disable components before the provide stage.

type InitConfigParsFunc

type InitConfigParsFunc func(c *dig.Container) error

InitConfigParsFunc gets called with a dig.Container.

type InitFunc

type InitFunc func(application *App) error

InitFunc gets called as the initialization function of the app.

type ParametersApp

type ParametersApp struct {
	CheckForUpdates bool     `default:"true" usage:"whether to check for updates of the application or not"`
	DisablePlugins  []string `default:"" usage:"a list of plugins that shall be disabled"`
	EnablePlugins   []string `default:"" usage:"a list of plugins that shall be enabled"`
}

type Plugin

type Plugin struct {
	*Component
	// The status of the plugin.
	Status PluginStatus
}

type PluginForEachFunc

type PluginForEachFunc func(plugin *Plugin) bool

PluginForEachFunc is used in ForEachPlugin. Returning false indicates to stop looping.

type PluginStatus

type PluginStatus int
const (
	StatusDisabled PluginStatus = iota
	StatusEnabled
)

type PreProvideFunc

type PreProvideFunc func(c *dig.Container, application *App, initConf *InitConfig) error

PreProvideFunc gets called with a dig.Container, the configs the InitComponent brings to the app and the InitConfig.

type ProvideFunc

type ProvideFunc func(c *dig.Container) error

ProvideFunc gets called with a dig.Container.

Directories

Path Synopsis
core
plugins

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL