conf

package
v0.0.1 Latest Latest
Warning

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

Go to latest
Published: May 17, 2022 License: GPL-3.0 Imports: 10 Imported by: 0

README

How to use

  1. Define a config structure, like below:
RestfulConf struct {
	Host         string        `json:",default=0.0.0.0"`
	Port         int
	LogMode      string        `json:",options=[file,console]"
	Verbose      bool          `json:",optional"`
	MaxConns     int           `json:",default=10000"`
	MaxBytes     int64         `json:",default=1048576"`
	Timeout      time.Duration `json:",default=3s"`
	CpuThreshold int64         `json:",default=900,range=[0:1000]"`
}
  1. Write the yaml or json config file:
# most fields are optional or have default values
Port: 8080
LogMode: console
# you can use env settings
MaxBytes: ${MAX_BYTES}
  1. Load the config from a file:
// exit on error
var config RestfulConf
conf.MustLoad(configFile, &config)

// or handle the error on your own
var config RestfulConf
if err := conf.Load(configFile, &config); err != nil {
  log.Fatal(err)
}

// enable reading from environments
var config RestfulConf
conf.MustLoad(configFile, &config, conf.UseEnv())

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func Load

func Load(file string, v interface{}, opts ...Option) error

Load loads config into v from file, .json, .yaml and .yml are acceptable.

func LoadConfig

func LoadConfig(file string, v interface{}, opts ...Option) error

LoadConfig loads config into v from file, .json, .yaml and .yml are acceptable. Deprecated: use Load instead.

func LoadConfigFromJsonBytes

func LoadConfigFromJsonBytes(content []byte, v interface{}) error

LoadConfigFromJsonBytes loads config into v from content json bytes. Deprecated: use LoadFromJsonBytes instead.

func LoadConfigFromYamlBytes

func LoadConfigFromYamlBytes(content []byte, v interface{}) error

LoadConfigFromYamlBytes loads config into v from content yaml bytes. Deprecated: use LoadFromYamlBytes instead.

func LoadFromJsonBytes

func LoadFromJsonBytes(content []byte, v interface{}) error

LoadFromJsonBytes loads config into v from content json bytes.

func LoadFromTomlBytes

func LoadFromTomlBytes(content []byte, v interface{}) error

LoadFromTomlBytes loads config into v from content toml bytes.

func LoadFromYamlBytes

func LoadFromYamlBytes(content []byte, v interface{}) error

LoadFromYamlBytes loads config into v from content yaml bytes.

func MustLoad

func MustLoad(path string, v interface{}, opts ...Option)

MustLoad loads config into v from path, exits on error.

Types

type Option

type Option func(opt *options)

Option defines the method to customize the config options.

func UseEnv

func UseEnv() Option

UseEnv customizes the config to use environment variables.

type Properties

type Properties interface {
	GetString(key string) string
	SetString(key, value string)
	GetInt(key string) int
	SetInt(key string, value int)
	ToString() string
}

Properties interface provides the means to access configuration.

func LoadProperties

func LoadProperties(filename string, opts ...Option) (Properties, error)

LoadProperties loads the properties into a properties configuration instance. Returns an error that indicates if there was a problem loading the configuration.

func NewProperties

func NewProperties() Properties

NewProperties builds a new properties configuration structure.

type PropertyError

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

PropertyError represents a configuration error message.

func (*PropertyError) Error

func (configError *PropertyError) Error() string

Error returns the error message.

Jump to

Keyboard shortcuts

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