Swap to unmarshalling the JSON.

This commit is contained in:
root 2025-03-02 19:57:39 -05:00
parent f9f2413e44
commit e1322051e1

47
main.go
View file

@ -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("===")