aboutsummaryrefslogtreecommitdiffstats
path: root/config.go
diff options
context:
space:
mode:
Diffstat (limited to 'config.go')
-rw-r--r--config.go16
1 files changed, 15 insertions, 1 deletions
diff --git a/config.go b/config.go
index d9a2e30..746e437 100644
--- a/config.go
+++ b/config.go
@@ -1,6 +1,7 @@
1package main 1package main
2 2
3import ( 3import (
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
18type jsonURL url.URL
19
20func (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
29var _ encoding.TextUnmarshaler = new(jsonURL)
30
17type config struct { 31type 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"`