A kind of Augmented Reality programming game that makes you a better programmer.
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.
 
 
ttarpit/config/settings.go

52 lines
984 B

package config
import (
"flag"
"log"
"os"
"os/exec"
"encoding/json"
"regexp"
)
type Process struct {
Command string
Args []string
ExecCmd *exec.Cmd
}
type config struct {
Triggers []string
Includes []string
Processes map[string]Process
ConfigPath string
BuildRunning bool
TriggerRegex []*regexp.Regexp
IncludeRegex []*regexp.Regexp
}
var Settings config
func parseFlags(c *config) {
flag.StringVar(&c.ConfigPath, "config", ".ttarpit.json", ".ttarpit.json to load")
flag.Parse()
}
func Load() {
parseFlags(&Settings)
data, err := os.ReadFile(Settings.ConfigPath)
if err != nil { log.Fatal(err) }
err = json.Unmarshal(data, &Settings)
if err != nil { log.Fatal(err) }
for _, reg := range Settings.Triggers {
Settings.TriggerRegex = append(Settings.TriggerRegex, regexp.MustCompile(reg))
}
for _, reg := range Settings.Includes {
Settings.IncludeRegex = append(Settings.IncludeRegex, regexp.MustCompile(reg))
}
}