3b99f37a by slene

add a empty fake config Initialize AppConfig to avoid nil pointer runtime error.

1 parent e8f5c104
...@@ -192,7 +192,7 @@ func Run() { ...@@ -192,7 +192,7 @@ func Run() {
192 } 192 }
193 193
194 if SessionOn { 194 if SessionOn {
195 var err error 195 var err error
196 sessionConfig := AppConfig.String("sessionConfig") 196 sessionConfig := AppConfig.String("sessionConfig")
197 if sessionConfig == "" { 197 if sessionConfig == "" {
198 sessionConfig = `{"cookieName":"` + SessionName + `",` + 198 sessionConfig = `{"cookieName":"` + SessionName + `",` +
......
...@@ -141,6 +141,7 @@ func init() { ...@@ -141,6 +141,7 @@ func init() {
141 func ParseConfig() (err error) { 141 func ParseConfig() (err error) {
142 AppConfig, err = config.NewConfig("ini", AppConfigPath) 142 AppConfig, err = config.NewConfig("ini", AppConfigPath)
143 if err != nil { 143 if err != nil {
144 AppConfig = config.NewFakeConfig()
144 return err 145 return err
145 } else { 146 } else {
146 HttpAddr = AppConfig.String("HttpAddr") 147 HttpAddr = AppConfig.String("HttpAddr")
......
1 package config
2
3 import (
4 "errors"
5 "strconv"
6 "strings"
7 )
8
9 type fakeConfigContainer struct {
10 data map[string]string
11 }
12
13 func (c *fakeConfigContainer) getData(key string) string {
14 key = strings.ToLower(key)
15 return c.data[key]
16 }
17
18 func (c *fakeConfigContainer) Set(key, val string) error {
19 key = strings.ToLower(key)
20 c.data[key] = val
21 return nil
22 }
23
24 func (c *fakeConfigContainer) String(key string) string {
25 return c.getData(key)
26 }
27
28 func (c *fakeConfigContainer) Int(key string) (int, error) {
29 return strconv.Atoi(c.getData(key))
30 }
31
32 func (c *fakeConfigContainer) Int64(key string) (int64, error) {
33 return strconv.ParseInt(c.getData(key), 10, 64)
34 }
35
36 func (c *fakeConfigContainer) Bool(key string) (bool, error) {
37 return strconv.ParseBool(c.getData(key))
38 }
39
40 func (c *fakeConfigContainer) Float(key string) (float64, error) {
41 return strconv.ParseFloat(c.getData(key), 64)
42 }
43
44 func (c *fakeConfigContainer) DIY(key string) (interface{}, error) {
45 key = strings.ToLower(key)
46 if v, ok := c.data[key]; ok {
47 return v, nil
48 }
49 return nil, errors.New("key not find")
50 }
51
52 var _ ConfigContainer = new(fakeConfigContainer)
53
54 func NewFakeConfig() ConfigContainer {
55 return &fakeConfigContainer{
56 data: make(map[string]string),
57 }
58 }
Styling with Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!