• Stars
    star
    217
  • Rank 175,947 (Top 4 %)
  • Language
    Go
  • License
    MIT License
  • Created about 7 years ago
  • Updated over 2 years ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

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

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.