diff options
-rw-r--r-- | config.go | 16 | ||||
-rw-r--r-- | icalproxy.go | 6 |
2 files changed, 20 insertions, 2 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"` |
diff --git a/icalproxy.go b/icalproxy.go index cf09e5d..9ca1b33 100644 --- a/icalproxy.go +++ b/icalproxy.go | |||
@@ -15,7 +15,11 @@ func main() { | |||
15 | cfg := loadConfig() | 15 | cfg := loadConfig() |
16 | printConfig(&cfg) | 16 | printConfig(&cfg) |
17 | 17 | ||
18 | handler := handler{ignore: cfg.Ignore, tokens: cfg.UserTokens} | 18 | handler := handler{ |
19 | calURL: url.URL(cfg.CalendarURL), | ||
20 | ignore: cfg.Ignore, | ||
21 | tokens: cfg.UserTokens, | ||
22 | } | ||
19 | 23 | ||
20 | mux := http.ServeMux{} | 24 | mux := http.ServeMux{} |
21 | mux.HandleFunc("/", handler.handle) | 25 | mux.HandleFunc("/", handler.handle) |