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

@ -12,9 +12,9 @@ func main() {
config.Load() config.Load()
fmt.Println("CONFIG:", config.Settings.ConfigPath) 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) { if errors.Is(cmd.Err, exec.ErrDot) {
cmd.Err = nil cmd.Err = nil
} }

Loading…
Cancel
Save