package main import ( "encoding/json" "io/ioutil" "os" ) var configFile = "config.json" var config = &configMain{ Admins: map[string]configAdmin{}, Boards: map[string]configBoard{}, } type configMain struct{ Admins map[string]configAdmin `json:"admins"` Boards map[string]configBoard `json:"boards"` } type configAdmin struct{ Username string `json:"user"` Hash []byte `json:"hash"` } type configBoard struct{ ID uint16 `json:"ID"` KEY []byte `json:"KEY"` } func loadConfig() { if _, err := os.Stat(configFile); os.IsNotExist(err) { return } jsonFile, err := os.Open(configFile) errCheckExit(err, "Unable to open config file") defer jsonFile.Close() byteValue, _ := ioutil.ReadAll(jsonFile) err = json.Unmarshal(byteValue, config) errCheck(err, "Failed to unmarshal config") } func saveConfig() { jsonValue, _ := json.Marshal(config) err := ioutil.WriteFile(configFile, jsonValue, 0644) errCheck(err, "Failed to write config") }