Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/joshbetz/config
🛠A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.
https://github.com/joshbetz/config
config configuration env environment-variables go golang json sighup
Last synced: about 1 month ago
JSON representation
🛠A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP.
- Host: GitHub
- URL: https://github.com/joshbetz/config
- Owner: joshbetz
- License: mit
- Created: 2017-04-02T18:37:05.000Z (over 7 years ago)
- Default Branch: main
- Last Pushed: 2021-11-12T16:58:10.000Z (about 3 years ago)
- Last Synced: 2024-07-30T20:38:55.305Z (4 months ago)
- Topics: config, configuration, env, environment-variables, go, golang, json, sighup
- Language: Go
- Homepage: https://josh.blog/2017/04/go-configure
- Size: 21.5 KB
- Stars: 216
- Watchers: 4
- Forks: 14
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome-go - joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. (Configuration / Standard CLI)
- fucking-awesome-go - joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. (Configuration / Standard CLI)
- awesome-go - joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. (Configuration / Standard CLI)
- awesome-go - joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. (Configuration / Standard CLI)
- awesome-go - config - A configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP - ★ 190 (Configuration)
- awesome-go-extra - config - 04-02T18:37:05Z|2021-11-12T16:58:10Z| (Configuration / Advanced Console UIs)
- awesome-go-with-stars - joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. (Configuration / Standard CLI)
- awesome-discoveries - config - a small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP _(`Go`)_ (Libraries)
- awesome-go-plus - joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. ![stars](https://img.shields.io/badge/stars-215-blue) (Configuration / Standard CLI)
- awesome-go-cn - joshbetz/config
- awesome-go-plus - joshbetz/config - Small configuration library for Go that parses environment variables, JSON files, and reloads automatically on SIGHUP. ![stars](https://img.shields.io/badge/stars-215-blue) ![forks](https://img.shields.io/badge/forks-14-blue) (Configuration / Standard CLI)
README
# config
[![Build Status](https://travis-ci.org/joshbetz/config.svg?branch=master)](https://travis-ci.org/joshbetz/config) [![Go Report Card](https://goreportcard.com/badge/github.com/joshbetz/config)](https://goreportcard.com/report/github.com/joshbetz/config) [![](https://godoc.org/github.com/joshbetz/config?status.svg)](http://godoc.org/github.com/joshbetz/config)
A small configuration library for Go that parses environment variables, JSON
files, and reloads automatically on `SIGHUP`.## Example
```go
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](http://i.imgur.com/6H8b6zy.gif)
## API
```go
func New(file string) *Config
```Constructor that initializes a Config object and sets up the SIGHUP watcher.
```go
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.```go
func (config *Config) Reload()
```Reloads the config. Happens automatically on `SIGHUP`.