1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
|
package generators
import (
"github.com/sirupsen/logrus"
"github.com/lxc/distrobuilder/shared"
)
type common struct {
logger *logrus.Logger
cacheDir string
sourceDir string
defFile shared.DefinitionFile
}
func (g *common) init(logger *logrus.Logger, cacheDir string, sourceDir string, defFile shared.DefinitionFile, def shared.Definition) {
g.logger = logger
g.cacheDir = cacheDir
g.sourceDir = sourceDir
g.defFile = defFile
render := func(val string) string {
if !defFile.Pongo {
return val
}
out, err := shared.RenderTemplate(val, def)
if err != nil {
logger.WithField("err", err).Warn("Failed to render template")
return val
}
return out
}
if defFile.Pongo {
g.defFile.Content = render(g.defFile.Content)
g.defFile.Path = render(g.defFile.Path)
g.defFile.Source = render(g.defFile.Source)
}
}
|