slag README.md
1.1 kB · 47 lines
Markdown

slag #

define a struct, and parse the cmdline args for it

Roadmap State: unfinished

desired api

slag -name "pinkpower" -magic .kind ice .power 30 -skills [.name "iceball" .elements ["water", "cold"], .name "snowgrave" .elements ["evilness"]] -items ["oreos", "rebellion"] -proceed -sure false
// by default it lower snake cases every field name
type Skills struct {
    Name string       `slag:"name"`
    Elements []string `slag:"elements"`
}

type Magic struct {
    Proceed bool         `slag:"proceed"`
    Sure    bool         `slag:"sure"`
    Name    string       `slag:"name"`
    Items   []string     `slag:"items"`
    Skills  []Skills     `slag:"skills"`
    Magic   string       `slag:"magic"`
    Power   int          `slag:"power"`
}

defaults := Magic{
    Name : "Cool",
    Magic: "Fire",
    Power: 50,
}
var m Magic

slag.Parse(&m)
slag.ParseWithDefaults(&m, defaults)
fmt.Printf("%v", m)