From cd5a1478064ac01a9f1369101ac35c10d32df635 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Mon, 17 Apr 2023 19:47:08 +0300 Subject: initial version --- internal/config.go | 40 ++++++++++++++++++++++++++++++++++++++++ internal/run.go | 10 ++++++++++ 2 files changed, 50 insertions(+) create mode 100644 internal/config.go create mode 100644 internal/run.go (limited to 'internal') diff --git a/internal/config.go b/internal/config.go new file mode 100644 index 0000000..c3fff26 --- /dev/null +++ b/internal/config.go @@ -0,0 +1,40 @@ +package internal + +import ( + "encoding/json" + "io/ioutil" + "os" +) + +type participant struct { + Hostname string + Port int +} + +type config struct { + Hostname string + Port int + Participants []participant +} + +func newConfig(configFile string) (config, error) { + var config config + + file, err := os.Open(configFile) + if err != nil { + return config, err + } + defer file.Close() + + bytes, err := ioutil.ReadAll(file) + if err != nil { + return config, err + } + + err = json.Unmarshal(bytes, &config) + if err != nil { + return config, err + } + + return config, nil +} diff --git a/internal/run.go b/internal/run.go new file mode 100644 index 0000000..2d177ea --- /dev/null +++ b/internal/run.go @@ -0,0 +1,10 @@ +package internal + +import "context" + +func Run(ctx context.Context, configFile string) { + _, err := newConfig(configFile) + if err != nil { + panic(err) + } +} -- cgit v1.2.3