Switch to using json for a 'no dependencies' project.

master
Zed A. Shaw 3 days ago
parent bcd3bb6263
commit 7eff8412f3
  1. 8
      .ozai.json
  2. 6
      .ozai.toml
  3. 22
      config/settings.go
  4. 4
      main.go

@ -0,0 +1,8 @@
{
"Processes": {
"ssgod": {
"Name": "ssgod",
"Command": "ssgod"
}
}
}

@ -1,6 +0,0 @@
[commands.ssgod]
Command="ssgod"
[commands.echo]
Command="ssgod"

@ -3,7 +3,9 @@ package config
import (
"flag"
"log"
"github.com/BurntSushi/toml"
"os"
"fmt"
"encoding/json"
)
type command struct {
@ -11,29 +13,25 @@ type command struct {
}
type config struct {
Commands map[string]command
Processes map[string]command
ConfigPath string
}
var Settings config
func parseFlags(c *config) {
flag.StringVar(&c.ConfigPath, "config", ".ozai.toml", ".ozai.toml to load")
flag.StringVar(&c.ConfigPath, "config", ".ozai.json", ".ozai.json to load")
flag.Parse()
}
func Load() {
parseFlags(&Settings)
metadata, err := toml.DecodeFile(Settings.ConfigPath, &Settings)
the_fucking_data, err := os.ReadFile(Settings.ConfigPath)
if err != nil { log.Fatal(err) }
if err != nil {
log.Fatalf("error loading config.toml: %v", err)
}
fmt.Printf("%s\n", the_fucking_data)
bad_keys := metadata.Undecoded()
if len(bad_keys) > 0 {
log.Fatalf("unknown configuration keys: %v", bad_keys);
}
err = json.Unmarshal(the_fucking_data, &Settings)
if err != nil { log.Fatal(err) }
}

@ -12,9 +12,9 @@ func main() {
config.Load()
fmt.Println("CONFIG:", config.Settings.ConfigPath)
fmt.Println("COMMANDs:", config.Settings.Commands)
fmt.Println("COMMANDs:", config.Settings.Processes)
cmd := exec.Command(config.Settings.Commands["ssgod"].Command)
cmd := exec.Command(config.Settings.Processes["ssgod"].Command)
if errors.Is(cmd.Err, exec.ErrDot) {
cmd.Err = nil
}

Loading…
Cancel
Save