Documentation
¶
Index ¶
- Constants
- func RegisterBoolSetting(name string, description string, prop *bool)
- func RegisterCronSetting(name, description string, cronString *string)
- func RegisterDurationSetting(name string, description string, prop *time.Duration)
- func RegisterFloat32Setting(name string, description string, prop *float32)
- func RegisterFloatSetting(name string, description string, prop *float64)
- func RegisterIPNetSetting(name, description string, prop *net.IPNet)
- func RegisterIPSetting(name, description string, prop *net.IP)
- func RegisterInt8Setting(name, description string, prop *int8)
- func RegisterInt16Setting(name, description string, prop *int16)
- func RegisterInt32Setting(name string, description string, prop *int32)
- func RegisterInt64Setting(name string, description string, prop *int64)
- func RegisterIntSetting(name string, description string, prop *int)
- func RegisterJSONSetting[T any](name, description string, prop *T)
- func RegisterJSONSettingWithValidator[T any](name, description string, prop *T, validate func(T) error)
- func RegisterSetting(s *Setting)
- func RegisterSettingReceiver(r SettingReceiver)
- func RegisterStringSetting(name string, description string, prop *string)
- func RegisterStringSliceSetting(name, description string, prop *[]string)
- func RegisterTimeSetting(name, description string, prop *time.Time)
- func RegisterURLSetting(name, description string, prop *url.URL)
- func RegisterUint8Setting(name, description string, prop *uint8)
- func RegisterUint16Setting(name, description string, prop *uint16)
- func RegisterUint32Setting(name, description string, prop *uint32)
- func RegisterUint64Setting(name, description string, prop *uint64)
- func RegisterUintSetting(name string, description string, prop *uint)
- func RetrieveAppSettings() error
- func SetSetting(settingName string, value any) error
- func SettingsVars() kong.Vars
- func Setup(settingsFileName string, options SettingsOptions) error
- func SetupWithDB(gormDB *gorm.DB, options SettingsOptions) error
- type Setting
- type SettingReceiver
- type SettingsCommand
- type SettingsDef
- type SettingsListActiveCommand
- type SettingsListCommand
- type SettingsListDefaultsCommand
- type SettingsListRunningCommand
- type SettingsListSavedCommand
- type SettingsOptions
- type SettingsRemoveCommand
- type SettingsSaveCommand
Constants ¶
const DefaultTableName = models.TableNameAppSetting
Variables ¶
This section is empty.
Functions ¶
func RegisterBoolSetting ¶
RegisterBoolSetting registers a boolean setting with a specified name, description, and pointer to the bool property.
func RegisterCronSetting ¶
func RegisterDurationSetting ¶
RegisterDurationSetting registers a time.Duration setting with a specified name, description, and pointer to the time.Duration property.
func RegisterFloat32Setting ¶
RegisterFloat32Setting registers a 32-bit float setting with a specified name, description, and pointer to the float32 property.
func RegisterFloatSetting ¶
RegisterFloatSetting registers a float64 setting with a specified name, description, and pointer to the float64 property.
func RegisterIPNetSetting ¶
RegisterIPNetSetting registers a net.IPNet setting (CIDR format).
func RegisterIPSetting ¶
RegisterIPSetting registers a net.IP setting.
func RegisterInt8Setting ¶
RegisterInt8Setting registers an 8-bit integer setting.
func RegisterInt16Setting ¶
RegisterInt16Setting registers a 16-bit integer setting.
func RegisterInt32Setting ¶
RegisterInt32Setting registers a 32-bit integer setting with a specified name, description, and pointer to the int32 property.
func RegisterInt64Setting ¶
RegisterInt64Setting registers a 64-bit integer setting with a specified name, description, and pointer to the int64 property.
func RegisterIntSetting ¶
RegisterIntSetting registers an integer setting with a name, description, and a pointer to the integer property.
func RegisterJSONSetting ¶ added in v0.4.0
func RegisterJSONSettingWithValidator ¶ added in v0.4.0
func RegisterSetting ¶
func RegisterSetting(s *Setting)
RegisterSetting adds a given Setting to the global settings list.
func RegisterSettingReceiver ¶
func RegisterSettingReceiver(r SettingReceiver)
RegisterSettingReceiver registers a SettingReceiver by wrapping its methods in a Setting struct and appending it to the global settings list.
func RegisterStringSetting ¶
RegisterStringSetting registers a string setting with a specified name, description, and a pointer to the property to manage its value.
func RegisterStringSliceSetting ¶
RegisterStringSliceSetting registers a string slice setting (comma-separated).
func RegisterTimeSetting ¶
RegisterTimeSetting registers a time.Time setting using RFC3339 format.
func RegisterURLSetting ¶
RegisterURLSetting registers a url.URL setting.
func RegisterUint8Setting ¶
RegisterUint8Setting registers an 8-bit unsigned integer setting.
func RegisterUint16Setting ¶
RegisterUint16Setting registers a 16-bit unsigned integer setting.
func RegisterUint32Setting ¶
RegisterUint32Setting registers a 32-bit unsigned integer setting.
func RegisterUint64Setting ¶
RegisterUint64Setting registers a 64-bit unsigned integer setting.
func RegisterUintSetting ¶
RegisterUintSetting registers an unsigned integer setting with a specified name, description, and pointer to the uint property.
func RetrieveAppSettings ¶
func RetrieveAppSettings() error
RetrieveAppSettings fetches application settings from the database and initializes default settings. If database retrieval fails, the application exits with an error. It also updates in-memory settings based on the retrieved values from the database.
func SetSetting ¶ added in v0.2.0
SetSetting updates the value of a specified setting by its name. Converts the provided value to a string and applies it using the setting's SetFunc. Saves the updated setting to the database and returns an error if any operation fails.
func SettingsVars ¶
SettingsVars constructs a kong.Vars map by iterating through all settings, retrieving their values using associated getters, and populating the map with setting names as keys and their retrieved values as values.
func Setup ¶
func Setup(settingsFileName string, options SettingsOptions) error
Setup initializes the application with the provided settings file and options. It configures the database, sets up the RPC socket if specified, merges Kong variables, and retrieves application settings. Returns an error if any initialization step fails.
func SetupWithDB ¶ added in v0.4.0
func SetupWithDB(gormDB *gorm.DB, options SettingsOptions) error
Types ¶
type Setting ¶
type Setting struct {
SetFunc func(string) error
GetFunc func() string
ValueToStringFunc func(any) (string, error)
Name string
Description string
Hidden bool
}
SettingsOptions defines configuration options for listing running settings.
func GetSetting ¶ added in v0.2.0
GetSetting retrieves a `Setting` by its name from the global list `settings`. If no match is found, it returns `nil`.
type SettingReceiver ¶
type SettingReceiver interface {
SettingName() string
SettingDescription() string
SettingSet(string) error
SettingGet() string
}
SettingsOptions defines configuration options for listing running settings.
type SettingsCommand ¶
type SettingsCommand struct {
List SettingsListCommand `cmd:"" help:"List settings"`
Save SettingsSaveCommand `cmd:"" help:"Save settings"`
Set SettingsSaveCommand `cmd:"" help:"Alias for save"`
Remove SettingsRemoveCommand `cmd:"" help:"Remove settings"`
Unset SettingsRemoveCommand `cmd:"" help:"Alias for remove"`
}
SettingsOptions defines configuration options for listing running settings.
type SettingsDef ¶
type SettingsDef struct {
Logging struct {
Level string `enum:"debug,info,warn,error" default:"${logging_level}" help:"debug, info, warn, error" group:"logging"`
} `embed:"" prefix:"logging."`
Settings SettingsCommand `cmd:"" help:"Settings" group:"App Settings"`
}
SettingsOptions defines configuration options for listing running settings.
type SettingsListActiveCommand ¶
type SettingsListActiveCommand struct{}
SettingsOptions defines configuration options for listing running settings.
func (*SettingsListActiveCommand) Run ¶
func (c *SettingsListActiveCommand) Run() error
type SettingsListCommand ¶
type SettingsListCommand struct {
Defaults SettingsListDefaultsCommand `cmd:"" help:"List default settings"`
Saved SettingsListSavedCommand `cmd:"" help:"List saved settings"`
Running SettingsListRunningCommand `cmd:"" help:"List running settings"`
Active SettingsListActiveCommand `cmd:"" help:"List active settings"`
}
SettingsOptions defines configuration options for listing running settings.
type SettingsListDefaultsCommand ¶
type SettingsListDefaultsCommand struct{}
SettingsOptions defines configuration options for listing running settings.
func (*SettingsListDefaultsCommand) Run ¶
func (c *SettingsListDefaultsCommand) Run() error
Run executes the command to display default application settings in a sorted table format. It uses the printSettings function to handle the output of pre-defined settings. Returns nil upon successful execution.
type SettingsListRunningCommand ¶
type SettingsListRunningCommand struct{}
SettingsOptions defines configuration options for listing running settings.
func (*SettingsListRunningCommand) GetRunningSettings ¶
func (c *SettingsListRunningCommand) GetRunningSettings(_ *struct{}, data *[]models.AppSetting) error
GetRunningSettings retrieves the current running application settings and maps them into a slice of AppSetting. The result is assigned to the provided data pointer. Returns an error if the operation fails.
func (*SettingsListRunningCommand) Run ¶
func (c *SettingsListRunningCommand) Run() error
Run connects to a Unix socket, retrieves running application settings via RPC, processes them, and displays them. It returns an error if the connection fails or if settings retrieval is unsuccessful.
type SettingsListSavedCommand ¶
type SettingsListSavedCommand struct{}
SettingsOptions defines configuration options for listing running settings.
func (*SettingsListSavedCommand) Run ¶
func (c *SettingsListSavedCommand) Run() error
Run executes the command to retrieve and display saved settings. It fetches settings from the database, handles errors, and prints the retrieved settings to the console. Returns an error if there is an issue during the retrieval process.
type SettingsOptions ¶
type SettingsOptions struct {
RpcSocketPathToListRunningSettings string
KongVars *kong.Vars
TableName string
}
SettingsOptions defines configuration options for listing running settings.
type SettingsRemoveCommand ¶
type SettingsRemoveCommand struct {
Setting string `arg:"" help:"Setting to remove" required:""`
}
SettingsOptions defines configuration options for listing running settings.
func (*SettingsRemoveCommand) Run ¶
func (c *SettingsRemoveCommand) Run() error
Run removes the specified application setting if it exists, otherwise returns an error. It identifies the setting by name, deletes it from the database, and handles any errors encountered during the operation. On success, it prints a confirmation message.
type SettingsSaveCommand ¶
type SettingsSaveCommand struct {
Setting string `arg:"" help:"Setting to set" required:""`
Value string `arg:"" help:"Value to set" required:""`
}
SettingsOptions defines configuration options for listing running settings.
func (*SettingsSaveCommand) Run ¶
func (c *SettingsSaveCommand) Run() error
Run executes the command to update a specific application setting with a provided value and persists it in the database.