Compare commits
No commits in common. "main" and "v0.0.1" have entirely different histories.
@ -1,9 +0,0 @@
|
|||||||
package main
|
|
||||||
|
|
||||||
import "git.milar.in/milarin/adverr"
|
|
||||||
|
|
||||||
var (
|
|
||||||
ErrInvalidTemplateSyntax = adverr.NewErrTmpl("ErrInvalidTemplateSyntax", "parsing of template failed: %s")
|
|
||||||
ErrTemplateExecutionFailed = adverr.NewErrTmpl("ErrTemplateExecutionFailed", "execution of template failed: %s")
|
|
||||||
ErrDirectoryCreationFailed = adverr.NewErrTmpl("ErrDirectoryCreationFailed", "creation of target directory failed: %s")
|
|
||||||
)
|
|
5
go.mod
5
go.mod
@ -2,7 +2,4 @@ module git.milar.in/milarin/cfgen
|
|||||||
|
|
||||||
go 1.19
|
go 1.19
|
||||||
|
|
||||||
require (
|
require gopkg.in/yaml.v2 v2.4.0
|
||||||
git.milar.in/milarin/adverr v1.1.0
|
|
||||||
gopkg.in/yaml.v2 v2.4.0
|
|
||||||
)
|
|
||||||
|
2
go.sum
2
go.sum
@ -1,5 +1,3 @@
|
|||||||
git.milar.in/milarin/adverr v1.1.0 h1:jD9WnOvs40lfMhvqQ7cllOaRJNBMWr1f07/s9jAadp0=
|
|
||||||
git.milar.in/milarin/adverr v1.1.0/go.mod h1:joU9sBb7ySyNv4SpTXB0Z4o1mjXsArBw4N27wjgzj9E=
|
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405 h1:yhCVgyC4o1eVCa2tZl7eS0r+SDo693bJlVdllGtEeKM=
|
||||||
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
|
||||||
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY=
|
||||||
|
@ -13,7 +13,7 @@ import (
|
|||||||
func HandleTemplate(tmpl *template.Template) error {
|
func HandleTemplate(tmpl *template.Template) error {
|
||||||
b := &bytes.Buffer{}
|
b := &bytes.Buffer{}
|
||||||
if err := tmpl.Execute(b, ConfigFile.Globals); err != nil {
|
if err := tmpl.Execute(b, ConfigFile.Globals); err != nil {
|
||||||
return ErrTemplateExecutionFailed.Wrap(err, tmpl.Name())
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if len(strings.TrimSpace(b.String())) == 0 {
|
if len(strings.TrimSpace(b.String())) == 0 {
|
||||||
|
14
main.go
14
main.go
@ -3,11 +3,9 @@ package main
|
|||||||
import (
|
import (
|
||||||
"errors"
|
"errors"
|
||||||
"flag"
|
"flag"
|
||||||
"fmt"
|
|
||||||
"os"
|
"os"
|
||||||
"text/template"
|
"text/template"
|
||||||
|
|
||||||
"git.milar.in/milarin/adverr"
|
|
||||||
"gopkg.in/yaml.v2"
|
"gopkg.in/yaml.v2"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -19,22 +17,21 @@ func main() {
|
|||||||
flag.Parse()
|
flag.Parse()
|
||||||
|
|
||||||
if err := ReadConfigFile(); err != nil {
|
if err := ReadConfigFile(); err != nil {
|
||||||
fmt.Fprintln(os.Stderr, "no config file provided")
|
panic(err)
|
||||||
os.Exit(1)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
tmplMap, err := ParseTemplates(template.New("template"), ConfigFile.TemplateDir)
|
tmplMap, err := ParseTemplates(template.New("template"), ConfigFile.TemplateDir)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
adverr.Fatalln(err, 2)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := os.MkdirAll(ConfigFile.TargetDir, 0755); err != nil {
|
if err := os.MkdirAll(ConfigFile.TargetDir, 0755); err != nil {
|
||||||
adverr.Fatalln(ErrDirectoryCreationFailed.Wrap(err, ConfigFile.TargetDir), 3)
|
panic(err)
|
||||||
}
|
}
|
||||||
|
|
||||||
for _, tmpl := range tmplMap {
|
for _, tmpl := range tmplMap {
|
||||||
if err := HandleTemplate(tmpl); err != nil {
|
if err := HandleTemplate(tmpl); err != nil {
|
||||||
adverr.Fatalln(err, 4)
|
panic(err)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -55,10 +52,7 @@ func ReadConfigFile() error {
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
ConfigFile.TemplateDir = os.ExpandEnv(ConfigFile.TemplateDir)
|
|
||||||
ConfigFile.TargetDir = os.ExpandEnv(ConfigFile.TargetDir)
|
|
||||||
RecursiveEnvLookupForMap(ConfigFile.Globals)
|
RecursiveEnvLookupForMap(ConfigFile.Globals)
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -48,7 +48,7 @@ func parseTemplates(tmpl *template.Template, tmplMap map[string]*template.Templa
|
|||||||
|
|
||||||
tmpl, err = tmpl.New(tmplName).Parse(string(data))
|
tmpl, err = tmpl.New(tmplName).Parse(string(data))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return ErrInvalidTemplateSyntax.Wrap(err, tmplName)
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
tmplMap[tmplName] = tmpl
|
tmplMap[tmplName] = tmpl
|
||||||
|
Loading…
x
Reference in New Issue
Block a user