app

package
v0.1.10 Latest Latest
Warning

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

Go to latest
Published: Oct 2, 2023 License: Apache-2.0, BSD-2-Clause Imports: 17 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 ...Option) *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 (a *App) ForEachPlugin(f PluginForEachFunc)

ForEachPlugin calls the given PluginForEachFunc on each loaded plugin.

func (*App) Info

func (a *App) Info() *Info

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) NewLogger

func (a *App) NewLogger(name string) *logger.Logger

NewLogger returns a new named child of the app's root logger.

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 Callback

type Callback func() error

Callback is a function called without any arguments.

type Component

type Component struct {

	// 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) App

func (c *Component) App() *App

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 Info

type Info struct {
	Name                string
	Version             string
	LatestGitHubVersion string
}

Info provides informations about the app.

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 {
	// 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 IsEnabledFunc

type IsEnabledFunc func() bool

IsEnabledFunc gets called to check whether the Plugin is enabled. It returns true if the Plugin is enabled.

type Option

type Option func(opts *Options)

Option is a function setting a Options option.

func WithCoreComponents

func WithCoreComponents(coreComponents ...*CoreComponent) Option

WithCoreComponents sets the core components.

func WithDaemon

func WithDaemon(d daemon.Daemon) Option

WithDaemon sets the used daemon.

func WithInitComponent

func WithInitComponent(initComponent *InitComponent) Option

WithInitComponent sets the init component.

func WithPlugins

func WithPlugins(plugins ...*Plugin) Option

WithPlugins sets the plugins.

func WithUsageText

func WithUsageText(usageText string) Option

WithUsageText overwrites the default usage text of the app.

func WithVersionCheck

func WithVersionCheck(owner string, repository string) Option

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 Plugin

type Plugin struct {
	*Component
	// IsEnabled gets called to check whether the Plugin is enabled.
	IsEnabled IsEnabledFunc
}

type PluginForEachFunc

type PluginForEachFunc func(plugin *Plugin) bool

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

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
pkg
plugins

Jump to

Keyboard shortcuts

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