main.go 820 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "bytes"
  4. "fmt"
  5. "io/ioutil"
  6. "os"
  7. "text/template"
  8. "github.com/Masterminds/sprig/v3"
  9. )
  10. func main() {
  11. templateFile := os.Args[1]
  12. src := os.Args[2]
  13. output := os.Args[3]
  14. b, err := ioutil.ReadFile(templateFile)
  15. if err != nil {
  16. panic(err)
  17. }
  18. b2, err := ioutil.ReadFile(src)
  19. if err != nil {
  20. panic(err)
  21. }
  22. templated, err := TemplatedString(fmt.Sprintf("%s\n%s", string(b), string(b2)), nil)
  23. if err != nil {
  24. panic(err)
  25. }
  26. err = ioutil.WriteFile(output, []byte(templated), os.ModePerm)
  27. if err != nil {
  28. panic(err)
  29. }
  30. }
  31. func TemplatedString(t string, i interface{}) (string, error) {
  32. b := bytes.NewBuffer([]byte{})
  33. tmpl, err := template.New("template").Funcs(sprig.TxtFuncMap()).Parse(t)
  34. if err != nil {
  35. return "", err
  36. }
  37. err = tmpl.Execute(b, i)
  38. return b.String(), err
  39. }