You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
61 lines
1.2 KiB
61 lines
1.2 KiB
package config |
|
|
|
import ( |
|
"encoding/json" |
|
"io/ioutil" |
|
"log" |
|
"os" |
|
) |
|
|
|
const ConfigPath string = "config.json" |
|
|
|
type S_Config struct { |
|
Address string `json:"Address"` |
|
AdminSecret string `json:"AdminSecret"` |
|
} |
|
|
|
var Config S_Config |
|
|
|
func initialize() error { |
|
configExists, err := os.Open(ConfigPath) |
|
|
|
if err != nil { |
|
log.Println("management.initialize: new deployment: building config") |
|
|
|
configNew, err := os.OpenFile("config.json", os.O_CREATE|os.O_WRONLY, 0644) |
|
if err == nil { |
|
Config.Address = ":8080" |
|
Config.AdminSecret = "netadmin" |
|
|
|
configByte, err := json.MarshalIndent(Config, "", " ") |
|
if err != nil { |
|
log.Fatal("config.initialize: could not Marshall Settings: ", err) |
|
return err |
|
} |
|
configNew.Write(configByte) |
|
} else { |
|
log.Fatal("config.initialize: could not create new config.json file: ", err) |
|
return err |
|
} |
|
|
|
defer configNew.Close() |
|
} else { |
|
configByte, err := ioutil.ReadAll(configExists) |
|
if err != nil { |
|
log.Fatal("config.initialize: could not read config: ", err) |
|
return err |
|
} |
|
|
|
json.Unmarshal(configByte, &Config) |
|
|
|
defer configExists.Close() |
|
} |
|
|
|
return nil |
|
} |
|
|
|
func ReadConfig() { |
|
// If doesnt exist, write default config |
|
|
|
initialize() |
|
}
|
|
|