1
0
Fork 0

Config module

This commit is contained in:
Gregory Eremin 2015-03-05 14:44:42 +07:00
parent dce4c5e1d1
commit 4f24495d96
1 changed files with 47 additions and 0 deletions

47
config/config.go Normal file
View File

@ -0,0 +1,47 @@
package config
import (
"encoding/json"
"flag"
"io/ioutil"
"os"
)
type (
Config struct {
ClientID string `json:"github_client_id"`
ClientSecret string `json:"github_client_secret"`
RedirectURI string `json:"github_redirect_uri"`
}
)
var (
conf Config
)
// Config is immutable and is always returned by value
func C() Config {
return conf
}
func init() {
var (
path string
fd *os.File
contents []byte
err error
)
flag.StringVar(&path, "config", "config.json", "Path to configuration file")
flag.Parse()
if fd, err = os.Open(path); err != nil {
panic(err)
}
if contents, err = ioutil.ReadAll(fd); err != nil {
panic(err)
}
if err = json.Unmarshal(contents, &conf); err != nil {
panic(err)
}
}