aboutsummaryrefslogtreecommitdiff
path: root/apply.go
diff options
context:
space:
mode:
Diffstat (limited to 'apply.go')
-rw-r--r--apply.go32
1 files changed, 16 insertions, 16 deletions
diff --git a/apply.go b/apply.go
index 89abf8d..ddf12a5 100644
--- a/apply.go
+++ b/apply.go
@@ -7,46 +7,46 @@ import (
"text/template"
)
-func apply(args []string) error {
+func apply(conf *Conf, args []string) error {
if len(args) != 0 {
- return applyFiles(args)
+ return applyFiles(conf, args)
}
- names, err := getFileNames()
+ names, err := getFileNames(conf)
if err != nil {
return err
}
- return applyFiles(names)
+ return applyFiles(conf, names)
}
-func applyFiles(names []string) error {
+func applyFiles(conf *Conf, names []string) error {
for _, name := range names {
fmt.Printf("applying %s\n", name)
- if err := applyFile(name); err != nil {
+ if err := applyFile(conf, name); err != nil {
return fmt.Errorf("could not apply %s: %v", name, err)
}
}
return nil
}
-func applyFile(name string) error {
- src := filepath.Join(base, "templates", name)
+func applyFile(conf *Conf, name string) error {
+ src := filepath.Join(conf.Source, "templates", name)
t, err := template.New(filepath.Base(name)).Funcs(buildFuncMap()).ParseFiles(src)
if err != nil {
return fmt.Errorf("could not build template: %v", err)
}
- data, err := getTemplateData()
+ data, err := getTemplateData(conf)
if err != nil {
return err
}
- d := filepath.Join(dest, name)
- if err = os.MkdirAll(filepath.Dir(d), 0700); err != nil {
+ dest := filepath.Join(conf.Dest, name)
+ if err = os.MkdirAll(filepath.Dir(dest), 0700); err != nil {
return err
}
srcInfo, err := os.Stat(src)
if err != nil {
return err
}
- out, err := os.OpenFile(d, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, srcInfo.Mode())
+ out, err := os.OpenFile(dest, os.O_CREATE|os.O_WRONLY|os.O_TRUNC, srcInfo.Mode())
if err != nil {
return err
}
@@ -57,17 +57,17 @@ func applyFile(name string) error {
return nil
}
-func getFileNames() ([]string, error) {
+func getFileNames(c *Conf) ([]string, error) {
var names []string
- d := filepath.Join(base, "templates")
- err := filepath.Walk(d, func(path string, info os.FileInfo, err error) error {
+ dir := filepath.Join(c.Source, "templates")
+ err := filepath.Walk(dir, func(path string, info os.FileInfo, err error) error {
if err != nil {
return err
}
if info.IsDir() {
return nil
}
- name, err := filepath.Rel(d, path)
+ name, err := filepath.Rel(dir, path)
if err != nil {
return err
}