From d317e8f6df0e0e16445db606da1d683a6b35f531 Mon Sep 17 00:00:00 2001 From: Alexander Neonxp Kiryukhin Date: Tue, 30 Dec 2025 19:33:39 +0300 Subject: =?UTF-8?q?=D0=BD=D0=B0=D1=87=D0=B0=D0=BB=D1=8C=D0=BD=D1=8B=D0=B9?= =?UTF-8?q?=20=D0=BA=D0=BE=D0=BC=D0=BC=D0=B8=D1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/config/config.go | 46 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 46 insertions(+) create mode 100644 internal/config/config.go (limited to 'internal/config/config.go') diff --git a/internal/config/config.go b/internal/config/config.go new file mode 100644 index 0000000..94ff011 --- /dev/null +++ b/internal/config/config.go @@ -0,0 +1,46 @@ +package config + +import ( + "encoding/json" + "os" +) + +type Config struct { + Server Server `json:"server"` + Channels []Channel `json:"channels"` +} + +type Server struct { + PrivateKey string `json:"private_key"` + Addr string `json:"addr"` + Name string `json:"name"` +} + +type Channel struct { + Name string `json:"name"` +} + +func Load(file string) (*Config, error) { + fp, err := os.Open(file) + if err != nil { + return nil, err + } + defer fp.Close() + + cfg := new(Config) + + return cfg, json.NewDecoder(fp).Decode(cfg) +} + +func Save(file string, cfg *Config) error { + fp, err := os.Create(file) + if err != nil { + return err + } + + enc := json.NewEncoder(fp) + enc.SetIndent("", " ") + enc.SetEscapeHTML(false) + + return enc.Encode(cfg) +} -- cgit v1.2.3