config.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. // package config -- конфигурация для клиента
  2. package config
  3. import (
  4. "encoding/json"
  5. "log"
  6. "os"
  7. "wartank/desktop/bot"
  8. )
  9. // Config -- конфигурация для клиента
  10. type Config struct {
  11. Host_ string `json:"host"` // Хост
  12. Login_ string `json:"login"` // Логин
  13. Pass_ string `json:"password"` // Пароль
  14. DictBot_ map[string]*bot.Bot `json:"list_bots"` // Список ботов
  15. }
  16. // NewConfig -- возвращает новый конфиг
  17. func NewConfig() *Config {
  18. sf := &Config{
  19. DictBot_: map[string]*bot.Bot{},
  20. }
  21. sf.load()
  22. return sf
  23. }
  24. // Save -- сохраняет конфиг по требованию
  25. func (sf *Config) Save() {
  26. binData, _ := json.MarshalIndent(sf, "", "\t")
  27. err := os.WriteFile("./config.json", binData, 0600)
  28. if err != nil {
  29. log.Printf("Config.Save(): err=%v", err)
  30. }
  31. }
  32. // Загружает конфиг при старте
  33. func (sf *Config) load() {
  34. binData, err := os.ReadFile("./config.json")
  35. if err != nil {
  36. return
  37. }
  38. err = json.Unmarshal(binData, sf)
  39. if err != nil {
  40. return
  41. }
  42. }