/
package-process-templates.go
58 lines (46 loc) · 1 KB
/
package-process-templates.go
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
package main
import (
"errors"
"fmt"
"gopkg.in/urfave/cli.v1"
"io/ioutil"
)
func cmdPackageProcessTemplates(c *cli.Context) error {
basedir := c.String("basedir")
ignoreRole := c.Bool("ignore-role")
envStr := c.Args().Get(0)
outDir := c.Args().Get(1)
env, err := ParseEnv(envStr, basedir, true)
if err != nil {
return err
}
cc, err := ConfigstoreForEnv(env, ignoreRole)
if err != nil {
return err
}
if !DirExists(outDir) {
return errors.New("output directory doesn't exist: " + outDir)
}
templateFiles, err := ListFiles(basedir + "/template")
if err != nil {
return err
}
for _, f := range templateFiles {
fmt.Println("Processing template file: " + f)
b, err := ioutil.ReadFile(basedir + "/template/" + f)
if err != nil {
return err
}
s := string(b)
processed, err := cc.ProcessTemplateString(s)
if err != nil {
return err
}
err = ioutil.WriteFile(outDir+"/"+f, []byte(processed), 0644)
if err != nil {
return err
}
}
fmt.Println("Done!")
return nil
}