Skip to content

🛠 A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.

License

Notifications You must be signed in to change notification settings

joshbetz/config

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

config

Build Status Go Report Card

A small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.

Example

func main() {
	c := config.New("config.json")

	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
		var value string
		c.Get("value", &value)
		fmt.Fprintf(w, "Value: %s", value)
	})

	http.ListenAndServe(":3000", nil)
}

Reload config on SIGHUP

API

func New(file string) *Config

Constructor that initializes a Config object and sets up the SIGHUP watcher.

func (config *Config) Get(key string, v interface{}) error

Takes the path to a JSON file, the name of the configuration option, and a pointer to the variable where the config value will be stored. v can be a pointer to a string, bool, or float64.

func (config *Config) Reload()

Reloads the config. Happens automatically on SIGHUP.

About

🛠 A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.

Topics

Resources

License

Stars

Watchers

Forks

Languages