-
Notifications
You must be signed in to change notification settings - Fork 0
/
config.go
60 lines (51 loc) · 1.08 KB
/
config.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
package main
import (
"encoding/json"
"github.com/hashworks/go-xREL-API/xrel/types"
"io/ioutil"
"os"
"os/user"
"path/filepath"
)
var configFilePath string
func readConfig(filePath string) error {
var (
configData []byte
err error
)
if filePath == "" {
configFilePath = getDefaultConfigPath()
} else {
configFilePath = filePath
}
configData, err = ioutil.ReadFile(configFilePath)
if err == nil {
err = json.Unmarshal(configData, &types.Config)
}
return err
}
func writeConfig() error {
err := os.MkdirAll(filepath.Dir(configFilePath), 0700)
if err == nil {
var jsonString []byte
jsonString, err = json.Marshal(types.Config)
if err == nil {
err = ioutil.WriteFile(configFilePath, jsonString, 0700)
}
}
return err
}
func getDefaultConfigPath() string {
var (
defaultPath string
separator string = string(filepath.Separator)
)
usr, err := user.Current()
if err != nil {
defaultPath = "."
} else {
defaultPath = usr.HomeDir + separator + ".config" + separator + "xREL"
}
defaultPath += separator + "config.json"
return defaultPath
}