additional functions for templates
This commit is contained in:
@@ -2,3 +2,41 @@
|
||||
id: templating
|
||||
title: Templating
|
||||
---
|
||||
|
||||
# Templating
|
||||
|
||||
## loops
|
||||
|
||||
### range
|
||||
|
||||
iterate over elements of an array
|
||||
|
||||
```go
|
||||
{{ range $devname, $netdev := .NetDevs }}
|
||||
# netdev = {{ $netdev.Hwaddr }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
#### increment variable in loop
|
||||
|
||||
iterate over elements of an array and increment `i` each loop cycle
|
||||
|
||||
```go
|
||||
{{ $i := 0 }}
|
||||
{{ range $devname, $netdev := .NetDevs }}
|
||||
# netdev{{$i}} = {{ $netdev.Hwaddr }}
|
||||
{{ $i = inc $i }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
#### decrement
|
||||
|
||||
iterate over elements of an array and decrement `i` each loop cycle
|
||||
|
||||
```go
|
||||
{{ $i := 10 }}
|
||||
{{ range $devname, $netdev := .NetDevs }}
|
||||
# netdev{{$i}} = {{ $netdev.Hwaddr }}
|
||||
{{ $i = dec $i }}
|
||||
{{ end }}
|
||||
```
|
||||
|
||||
@@ -215,22 +215,24 @@ func buildOverlay(nodeList []node.NodeInfo, overlayType string) error {
|
||||
tmpl, err := template.New(path.Base(location)).Funcs(template.FuncMap{
|
||||
"Include": templateFileInclude,
|
||||
"IncludeFrom": templateContainerFileInclude,
|
||||
"inc": func(i int) int { return i + 1 },
|
||||
"dec": func(i int) int { return i - 1 },
|
||||
}).ParseGlob(path.Join(OverlayDir, destFile+".ww*"))
|
||||
if err != nil {
|
||||
wwlog.Printf(wwlog.ERROR, "%s\n", err)
|
||||
wwlog.Printf(wwlog.ERROR, "template.New %s\n", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
w, err := os.OpenFile(path.Join(tmpDir, destFile), os.O_RDWR|os.O_CREATE, info.Mode())
|
||||
if err != nil {
|
||||
wwlog.Printf(wwlog.ERROR, "%s\n", err)
|
||||
wwlog.Printf(wwlog.ERROR, "path.Join %s\n", err)
|
||||
return err
|
||||
}
|
||||
defer w.Close()
|
||||
|
||||
err = tmpl.Execute(w, t)
|
||||
if err != nil {
|
||||
wwlog.Printf(wwlog.ERROR, "%s\n", err)
|
||||
wwlog.Printf(wwlog.ERROR, "tmpl.Execute %s\n", err)
|
||||
return nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user