Swap to unmarshalling the JSON.
This commit is contained in:
parent
f9f2413e44
commit
e1322051e1
47
main.go
47
main.go
|
@ -5,40 +5,53 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"os/exec"
|
"os/exec"
|
||||||
|
|
||||||
"github.com/bitly/go-simplejson"
|
"github.com/hjson/hjson-go/v4"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
type Config struct {
|
||||||
|
System SystemConfig
|
||||||
|
Networking NetworkingConfig
|
||||||
|
Services map[string]ServiceConfig
|
||||||
|
}
|
||||||
|
|
||||||
|
type SystemConfig struct {
|
||||||
|
Packages []string
|
||||||
|
}
|
||||||
|
|
||||||
|
type NetworkingConfig struct {
|
||||||
|
}
|
||||||
|
|
||||||
|
type ServiceConfig struct {
|
||||||
|
Enable string
|
||||||
|
Provider string
|
||||||
|
Src string
|
||||||
|
Ports []string
|
||||||
|
Volumes []string
|
||||||
|
}
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
var err error
|
var err error
|
||||||
|
var config Config
|
||||||
|
|
||||||
fd, err := os.Open("goolinux.json")
|
file, err := os.ReadFile("goolinux.json")
|
||||||
defer fd.Close()
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
userJSON, err := simplejson.NewFromReader(fd)
|
err = hjson.Unmarshal(file, &config)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println(err)
|
fmt.Println(err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse services
|
// Parse services
|
||||||
services := userJSON.Get("services").MustMap()
|
for name, service := range config.Services {
|
||||||
for service, _ := range services {
|
fmt.Printf("Service: %s\n", name)
|
||||||
s := userJSON.Get("services").Get(service).MustMap()
|
fmt.Printf(" %v\n", service)
|
||||||
if s["enable"] == "false" { continue }
|
|
||||||
|
|
||||||
fmt.Printf("Service: %s\n", service)
|
|
||||||
for key, value := range s {
|
|
||||||
fmt.Printf(" %s: %s\n", key, value)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse package list
|
// Parse package list
|
||||||
packages := userJSON.Get("system").Get("packages").MustStringArray()
|
|
||||||
fmt.Println(packages)
|
|
||||||
|
|
||||||
// Add extra packages needed
|
// Add extra packages needed
|
||||||
// ...
|
// ...
|
||||||
|
@ -48,7 +61,7 @@ func main() {
|
||||||
var testArgs, args []string
|
var testArgs, args []string
|
||||||
var out []byte
|
var out []byte
|
||||||
testArgs = append(installString, "-s")
|
testArgs = append(installString, "-s")
|
||||||
testArgs = append(testArgs, packages...)
|
testArgs = append(testArgs, config.System.Packages...)
|
||||||
out, err = exec.Command("/sbin/apk", testArgs...).CombinedOutput()
|
out, err = exec.Command("/sbin/apk", testArgs...).CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("===")
|
fmt.Println("===")
|
||||||
|
@ -59,7 +72,7 @@ func main() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
args = append(installString, packages...)
|
args = append(installString, config.System.Packages...)
|
||||||
out, err = exec.Command("/sbin/apk", args...).CombinedOutput()
|
out, err = exec.Command("/sbin/apk", args...).CombinedOutput()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
fmt.Println("===")
|
fmt.Println("===")
|
||||||
|
|
Loading…
Reference in a new issue