knf

package
v12.41.0+incompatible Latest Latest
Warning

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

Go to latest
Published: Feb 8, 2022 License: Apache-2.0 Imports: 11 Imported by: 76

Documentation

Overview

Package knf provides methods for working with configuration files in KNF format

Index

Examples

Constants

This section is empty.

Variables

View Source
var (
	ErrConfigIsNil = errors.New("Config struct is nil")
	ErrFileNotSet  = errors.New("Path to config file is empty (non initialized struct?)")
)

Functions

func GetB

func GetB(name string, defvals ...bool) bool

GetB returns configuration value as boolean

func GetD

func GetD(name string, defvals ...time.Duration) time.Duration

GetD returns configuration values as duration

func GetF

func GetF(name string, defvals ...float64) float64

GetF returns configuration value as floating number

func GetI

func GetI(name string, defvals ...int) int

GetI returns configuration value as int

func GetI64

func GetI64(name string, defvals ...int64) int64

GetI64 returns configuration value as int64

func GetM

func GetM(name string, defvals ...os.FileMode) os.FileMode

GetM returns configuration value as file mode

func GetS

func GetS(name string, defvals ...string) string

GetS returns configuration value as string

func GetU

func GetU(name string, defvals ...uint) uint

GetU returns configuration value as uint

func GetU64

func GetU64(name string, defvals ...uint64) uint64

GetU64 returns configuration value as uint64

func Global

func Global(file string) error

Global reads and parses configuration file Global instance is accessible from any part of the code

Example
// Load global config
err := Global("/path/to/your/config.knf")

if err != nil {
	fmt.Printf("Error: %v\n", err)
	return
}

// Read string value
GetS("section:string")

// Read integer value
GetI("section:int")

// Read float value
GetF("section:float")

// Read boolean value
GetB("section:boolean")

// Read file mode value
GetM("section:file-mode")

// Read duration in seconds
GetD("section:duration")

// Check section
if HasSection("section") {
	// Section exist
}

// Check property
if HasProp("section:string") {
	// Property exist
}

// Slice of all sections
Sections()

// Slice of all properties in section
Props("section")
Output:

func HasProp

func HasProp(name string) bool

HasProp checks if property exist

func HasSection

func HasSection(section string) bool

HasSection checks if section exist

func Props

func Props(section string) []string

Props returns slice with properties names in some section

func Reload

func Reload() (map[string]bool, error)

Reload reloads global configuration file

Example
err := Global("/path/to/your/config.knf")

if err != nil {
	fmt.Printf("Error: %v\n", err)
	return
}

changes, err := Reload()

if err != nil {
	fmt.Printf("Error: %v\n", err)
	return
}

// Print info about changed values
for prop, changed := range changes {
	fmt.Printf("Property %s changed → %t\n", prop, changed)
}
Output:

func Sections

func Sections() []string

Sections returns slice with section names

func Validate

func Validate(validators []*Validator) []error

Validate executes all given validators and returns slice with validation errors

Types

type Config

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

Config is basic config struct

func Read

func Read(file string) (*Config, error)

Read reads and parses configuration file

func (*Config) GetB

func (c *Config) GetB(name string, defvals ...bool) bool

GetB returns configuration value as boolean

func (*Config) GetD

func (c *Config) GetD(name string, defvals ...time.Duration) time.Duration

GetD returns configuration value as duration

func (*Config) GetF

func (c *Config) GetF(name string, defvals ...float64) float64

GetF returns configuration value as floating number

func (*Config) GetI

func (c *Config) GetI(name string, defvals ...int) int

GetI returns configuration value as int

func (*Config) GetI64

func (c *Config) GetI64(name string, defvals ...int64) int64

GetI64 returns configuration value as int64

func (*Config) GetM

func (c *Config) GetM(name string, defvals ...os.FileMode) os.FileMode

GetM returns configuration value as file mode

func (*Config) GetS

func (c *Config) GetS(name string, defvals ...string) string

GetS returns configuration value as string

func (*Config) GetU

func (c *Config) GetU(name string, defvals ...uint) uint

GetU returns configuration value as uint

func (*Config) GetU64

func (c *Config) GetU64(name string, defvals ...uint64) uint64

GetU64 returns configuration value as uint64

func (*Config) HasProp

func (c *Config) HasProp(name string) bool

HasProp checks if property exist

func (*Config) HasSection

func (c *Config) HasSection(section string) bool

HasSection checks if section exist

func (*Config) Props

func (c *Config) Props(section string) []string

Props returns slice with properties names in some section

func (*Config) Reload

func (c *Config) Reload() (map[string]bool, error)

Reload reloads configuration file

func (*Config) Sections

func (c *Config) Sections() []string

Sections returns slice with section names

func (*Config) Validate

func (c *Config) Validate(validators []*Validator) []error

Validate executes all given validators and returns slice with validation errors

type PropertyValidator

type PropertyValidator func(config *Config, prop string, value interface{}) error

PropertyValidator is default type of property validation function

type Validator

type Validator struct {
	Property string            // Property name
	Func     PropertyValidator // Validation function
	Value    interface{}       // Expected value
}

Validator is config property validator struct

Directories

Path Synopsis
Package validators provides basic KNF validators
Package validators provides basic KNF validators
fs
Package fs provides KNF validators for checking file-system items
Package fs provides KNF validators for checking file-system items
network
Package network provides KNF validators for checking items related to network
Package network provides KNF validators for checking items related to network
regexp
Package regexp provides KNF validators with regular expressions
Package regexp provides KNF validators with regular expressions
system
Package system provides KNF validators for checking system items (user, groups, network interfaces) Package system provides KNF validators for checking system items (user, groups, network interfaces)
Package system provides KNF validators for checking system items (user, groups, network interfaces) Package system provides KNF validators for checking system items (user, groups, network interfaces)

Jump to

Keyboard shortcuts

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