This repository has been archived by the owner on Mar 31, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathconfig.go
107 lines (82 loc) · 1.85 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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package main
import (
"strings"
"github.com/pelletier/go-toml/v2"
)
var (
mainPath string = home + ".indiepkg/"
srcPath string = mainPath + "data/package_src/"
tmpSrcPath string = mainPath + "tmp/package_src/"
infoPath string = mainPath + "data/installed_packages/"
configPath string = mainPath + "config/"
tmpPath string = mainPath + "tmp/"
indiePkgSrcPath string = mainPath + "src/"
indiePkgBin string = home + ".local/bin/indiepkg"
)
type Paths struct {
Prefix string
}
type Updating struct {
Branch string
AutoUpdate bool
}
type Github struct {
Username string
Token string
}
type Progressbar struct {
Saucer string
SaucerHead string
AltSaucerHead string
SaucerPadding string
BarStart string
BarEnd string
}
type Progress struct {
CompileProgressIndicator string `toml:"compile_progress_indicator"`
}
type Config struct {
Paths Paths
Updating Updating
Progressbar Progressbar
Github Github
Progress Progress
}
var config Config = Config{
Paths{
home + ".local/",
},
Updating{
"testing",
true,
},
Progressbar{
"[cyan]=[reset]",
"[cyan]>[reset]",
"[cyan]>[reset]",
" ",
"(",
")",
},
Github{
"username",
"token",
},
Progress{
"spinner",
},
}
// Loads & reads configuration file.
func loadConfig() {
log(1, "Reading config file...")
raw := readFile(configPath+"config.toml", "An error occurred while reading config file")
log(1, "Loading config file...")
err := toml.Unmarshal([]byte(raw), &config)
errorLog(err, "An error occurred while loading config file")
if !strings.HasPrefix(config.Paths.Prefix, home) { // If not in the home directory, prepend it
config.Paths.Prefix = home + config.Paths.Prefix
}
if !strings.HasSuffix(config.Paths.Prefix, "/") { // If doesn't end with a /, add one
config.Paths.Prefix += "/"
}
}