app

package module
v0.0.0-...-15a9106 Latest Latest
Warning

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

Go to latest
Published: Sep 27, 2023 License: Apache-2.0, BSD-2-Clause Imports: 19 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) ForEachComponent

func (a *App) ForEachComponent(f ComponentForEachFunc)

ForEachComponent calls the given ComponentForEachFunc on each loaded component.

func (*App) Info

func (a *App) Info() *Info

func (*App) IsComponentEnabled

func (a *App) IsComponentEnabled(identifier string) bool

IsComponentEnabled returns whether the component is enabled.

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{}
	// 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) 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 ComponentForEachFunc

type ComponentForEachFunc func(component *Component) bool

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
}

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 Info

type Info struct {
	Name                string
	Version             string
	LatestGitHubVersion string
}

Info provides information 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 InitConfigParamsFunc

type InitConfigParamsFunc func(c *dig.Container) error

InitConfigParamsFunc 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(c *dig.Container) bool

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 Option

type Option func(opts *Options)

Option is a function setting a Options option.

func WithComponents

func WithComponents(components ...*Component) Option

WithComponents sets the 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 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 ProvideFunc

type ProvideFunc func(c *dig.Container) error

ProvideFunc gets called with a dig.Container.

Directories

Path Synopsis
components

Jump to

Keyboard shortcuts

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