diff options
author | Tulir Asokan <tulir@maunium.net> | 2018-03-18 21:24:03 +0200 |
---|---|---|
committer | Tulir Asokan <tulir@maunium.net> | 2018-03-18 21:24:03 +0200 |
commit | 72945c9a284b6858594f1e8a43743c397e90c380 (patch) | |
tree | c4dc096f97c546dcc546d50385e2909e2e10b82d /config.go | |
parent | 0509b195625c959a7b5556e3baae4f869c4d62f6 (diff) |
Organize files
Diffstat (limited to 'config.go')
-rw-r--r-- | config.go | 80 |
1 files changed, 0 insertions, 80 deletions
diff --git a/config.go b/config.go deleted file mode 100644 index f8696a4..0000000 --- a/config.go +++ /dev/null @@ -1,80 +0,0 @@ -// gomuks - A terminal Matrix client written in Go. -// Copyright (C) 2018 Tulir Asokan -// -// This program is free software: you can redistribute it and/or modify -// it under the terms of the GNU General Public License as published by -// the Free Software Foundation, either version 3 of the License, or -// (at your option) any later version. -// -// This program is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -// GNU General Public License for more details. -// -// You should have received a copy of the GNU General Public License -// along with this program. If not, see <http://www.gnu.org/licenses/>. - -package main - -import ( - "fmt" - "io/ioutil" - "os" - "path/filepath" - - "gopkg.in/yaml.v2" -) - -type Config struct { - MXID string `yaml:"mxid"` - HS string `yaml:"homeserver"` - - dir string `yaml:"-"` - gmx Gomuks `yaml:"-"` - debug DebugPrinter `yaml:"-"` - Session *Session `yaml:"-"` -} - -func NewConfig(gmx Gomuks, dir string) *Config { - return &Config{ - gmx: gmx, - debug: gmx.Debug(), - dir: dir, - } -} - -func (config *Config) Load() { - os.MkdirAll(config.dir, 0700) - configPath := filepath.Join(config.dir, "config.yaml") - data, err := ioutil.ReadFile(configPath) - if err != nil { - if os.IsNotExist(err) { - return - } else { - fmt.Println("Failed to read config from", configPath) - panic(err) - } - } - - err = yaml.Unmarshal(data, &config) - if err != nil { - fmt.Println("Failed to parse config at", configPath) - panic(err) - } -} - -func (config *Config) Save() { - os.MkdirAll(config.dir, 0700) - data, err := yaml.Marshal(&config) - if err != nil { - config.debug.Print("Failed to marshal config") - panic(err) - } - - path := filepath.Join(config.dir, "config.yaml") - err = ioutil.WriteFile(path, data, 0600) - if err != nil { - config.debug.Print("Failed to write config to", path) - panic(err) - } -} |