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 } //nolint:errcheck 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) }