Compare commits

..

No commits in common. "main" and "v0.0.1" have entirely different histories.
main ... v0.0.1

6 changed files with 7 additions and 27 deletions

View File

@ -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
View File

@ -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
View File

@ -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=

View File

@ -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
View File

@ -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
} }

View File

@ -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