From 20a1ebbf1fb5550edd4e9905c5b87ed175b7260d Mon Sep 17 00:00:00 2001 From: Andreas Schneider Date: Sat, 31 Mar 2018 18:52:32 +0200 Subject: [PATCH] Externalized settings --- src/calanonsync/calanonsync.go | 4 +++- src/calanonsync/settings.go | 33 +++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 src/calanonsync/settings.go diff --git a/src/calanonsync/calanonsync.go b/src/calanonsync/calanonsync.go index df0f53f..c64a771 100644 --- a/src/calanonsync/calanonsync.go +++ b/src/calanonsync/calanonsync.go @@ -151,7 +151,9 @@ func (e *EWSCalendar) getCalendarItems(folder *FolderId, start, end time.Time) ( } func main() { - e := NewEWSCalendar("https://outlook.live.com/EWS/Exchange.asmx", "", "") + s := LoadSettings() + + e := NewEWSCalendar(s.EWS.URL, s.EWS.Username, s.EWS.Password) id, err := e.getCalendarFolderID() if err != nil { log.Println(err) diff --git a/src/calanonsync/settings.go b/src/calanonsync/settings.go new file mode 100644 index 0000000..19734c8 --- /dev/null +++ b/src/calanonsync/settings.go @@ -0,0 +1,33 @@ +package main + +import ( + "encoding/json" + "os" +) + +type ServerSettings struct { + URL string + Username string + Password string +} + +type Settings struct { + EWS ServerSettings + CalDAV ServerSettings + Anonymize struct { + Title string + } +} + +func LoadSettings() Settings { + f, err := os.Open("calanonsync.json") + if err != nil { + panic(err) + } + settings := Settings{} + err = json.NewDecoder(f).Decode(&settings) + if err != nil { + panic(err) + } + return settings +}