Cfg

Features:

  • You can define your config items in your application as a struct.
  • You can save a json template of your struct
  • You can save runtime modifications to the config

Docs:

import "bitbucket.org/gotamer/cfg"

func Load(filename string, o interface{}) (err error)

Load gets your config from the json file, and fills your struct with the option

func Save(filename string, o interface{}) (err error)	

Save will save your struct to the given filename, this is a good way to create a json template

Example:

	package main

	import (
		"fmt"
		"bitbucket.org/gotamer/cfg"
		"os"
	)

	var Cfg *MainCfg

	type MainCfg struct {
		Name  string
	}

	func main() {
		Cfg = &MainCfg{"defaultAlias"}
		cfgpath := os.Getenv("GOPATH") + "/etc/myappname.json"
		err := cfg.Load(cfgpath, Cfg)
		if err != nil {
			cfg.Save(cfgpath, Cfg)
			fmt.Println("\n\tPlease edit your configuration at: ", cfgpath, "\n")
			os.Exit(0)
		}
		fmt.Printf("%s", Cfg)
	}