Files
edgevpn/api/generate/main.go
Ettore Di Giacinto 3a80a06d7c 🎨 Complete WebUI refactor
Use alpine.js + tailwind CSS (and some template magic) to create a
single-page view that doesn't need reloading anymore.
2022-04-12 19:20:35 +02:00

49 lines
820 B
Go

package main
import (
"bytes"
"fmt"
"io/ioutil"
"os"
"text/template"
"github.com/Masterminds/sprig/v3"
)
func main() {
templateFile := os.Args[1]
src := os.Args[2]
output := os.Args[3]
b, err := ioutil.ReadFile(templateFile)
if err != nil {
panic(err)
}
b2, err := ioutil.ReadFile(src)
if err != nil {
panic(err)
}
templated, err := TemplatedString(fmt.Sprintf("%s\n%s", string(b), string(b2)), nil)
if err != nil {
panic(err)
}
err = ioutil.WriteFile(output, []byte(templated), os.ModePerm)
if err != nil {
panic(err)
}
}
func TemplatedString(t string, i interface{}) (string, error) {
b := bytes.NewBuffer([]byte{})
tmpl, err := template.New("template").Funcs(sprig.TxtFuncMap()).Parse(t)
if err != nil {
return "", err
}
err = tmpl.Execute(b, i)
return b.String(), err
}