-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.go
83 lines (74 loc) · 2.05 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
// Copyright 2016 [email protected]
//
// Licensed under the Apache License, Version 2.0 (the "License"): you may
// not use this file except in compliance with the License. You may obtain
// a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
// WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
// License for the specific language governing permissions and limitations
// under the License.
/*
_ooOoo_
o8888888o
88" . "88
(| -_- |)
O\ = /O
____/`---'\____
.' \\| |// `.
/ \\||| : |||// \
/ _||||| -:- |||||- \
| | \\\ - /// | |
| \_| ''\---/'' | |
\ .-\__ `-` ___/-. /
___`. .' /--.--\ `. . __
."" '< `.___\_<|>_/___.' >'"".
| | : `- \`.;`\ _ /`;.`/ - ` : | |
\ \ `-. \_ __\ /__ _/ .-` / /
======`-.____`-.___\_____/___.-`____.-'======
`=---='
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
佛祖保佑 永无BUG
*/
package main
import (
"github.com/Sirupsen/logrus"
"github.com/jinzhu/configor"
"sync"
)
const (
VERSION string = "0.0.1"
)
type GlobalConfig struct {
Debug bool `json:"debug" default:"true"`
Addr string `json:"addr" default:":3000"`
DB struct {
DSN string `json:"dsn"`
MaxOpen int `json:"maxOpen" default:"100"`
MaxIdle int `json:"maxIdle" default:"10"`
} `json:"db"`
}
var (
config *GlobalConfig
lock = new(sync.RWMutex)
)
func Config() *GlobalConfig {
lock.RLock()
defer lock.RUnlock()
return config
}
func ParseConfig(cfg string) *GlobalConfig {
var c GlobalConfig
configor.Load(&c, cfg)
lock.Lock()
config = &c
lock.Unlock()
logrus.Printf("ParseConfig ok, file: %s, content: %+v", cfg, c)
return config
}
func Debug() bool {
return Config().Debug
}