Skip to content
This repository was archived by the owner on Dec 28, 2024. It is now read-only.

dmotylev/appconfig

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AppConfig Build Status Coverage Status Go Report Card GoDoc

import "github.com/dmotylev/appconfig"

Documentation

See GoDoc.

Usage

Set environment variables:

APP_TIMEOUT=1h2m3s
APP_WORKERNAME=Monkey

Write other values to the file:

cat > local.conf << EOF
APP_TIMEOUT=2h2m3s
APP_NUMWORKERS=10
APP_WORKERNAME=Robot
EOF

Write code:

Populate variable from both sources:

package main

import (
	"fmt"
	"time"

	"github.com/dmotylev/appconfig"
)

func main() {
	var conf struct {
		Timeout    time.Duration
		Day        time.Time `time,format:"2006-01-02"`
		WorkerName string
		NumWorkers int
	}

	err := appconfig.Load(&conf, appconfig.FromEnv("APP_"), appconfig.FromFile("local.conf"))

	fmt.Printf("err=%v\n", err)
	fmt.Printf("timeout=%s\n", conf.Timeout)
	fmt.Printf("day=%s\n", conf.Day.Format(time.UnixDate))
	fmt.Printf("worker=%s\n", conf.WorkerName)
	fmt.Printf("workers=%d\n", conf.NumWorkers)
}

Results:

err=<nil>
timeout=1h2m3s
day=Fri Dec 13 00:00:00 UTC 2013
worker=Monkey
workers=10

Get some inspiration from tests.

License

The package available under LICENSE.

About

Golang library for gathering configuration data from different sources

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages