diff options
Diffstat (limited to 'config.go')
-rw-r--r-- | config.go | 16 |
1 files changed, 15 insertions, 1 deletions
@@ -1,6 +1,7 @@ | |||
1 | package main | 1 | package main |
2 | 2 | ||
3 | import ( | 3 | import ( |
4 | "encoding" | ||
4 | "encoding/base64" | 5 | "encoding/base64" |
5 | "encoding/json" | 6 | "encoding/json" |
6 | "log" | 7 | "log" |
@@ -14,8 +15,21 @@ type userToken struct { | |||
14 | Salt []byte `json:"salt"` | 15 | Salt []byte `json:"salt"` |
15 | } | 16 | } |
16 | 17 | ||
18 | type jsonURL url.URL | ||
19 | |||
20 | func (u *jsonURL) UnmarshalText(v []byte) error { | ||
21 | parsed, err := url.Parse(string(v)) | ||
22 | if err != nil { | ||
23 | return err | ||
24 | } | ||
25 | *u = jsonURL(*parsed) | ||
26 | return nil | ||
27 | } | ||
28 | |||
29 | var _ encoding.TextUnmarshaler = new(jsonURL) | ||
30 | |||
17 | type config struct { | 31 | type config struct { |
18 | CalendarURL url.URL `json:"calendar_url"` | 32 | CalendarURL jsonURL `json:"calendar_url"` |
19 | Ignore ignoreRules `json:"ignore"` | 33 | Ignore ignoreRules `json:"ignore"` |
20 | Port string `json:"port"` | 34 | Port string `json:"port"` |
21 | UserTokens map[string]userToken `json:"user_tokens"` | 35 | UserTokens map[string]userToken `json:"user_tokens"` |