zenity/internal/osa/scripts/generate.go

77 lines
1.3 KiB
Go
Raw Normal View History

2020-01-04 22:21:39 -05:00
package main
import (
"bufio"
"io/ioutil"
"log"
"os"
"path/filepath"
"strings"
"text/template"
)
func main() {
dir := os.Args[1]
files, err := ioutil.ReadDir(dir)
if err != nil {
log.Fatal(err)
}
var str strings.Builder
for _, file := range files {
if name := file.Name(); filepath.Ext(name) == ".gots" {
str.WriteString("\n" + `{{define "`)
str.WriteString(strings.TrimSuffix(name, ".gots"))
str.WriteString(`"}}<script>`)
func() {
in, err := os.Open(filepath.Join(dir, name))
if err != nil {
log.Fatal(err)
}
defer in.Close()
scanner := bufio.NewScanner(in)
for scanner.Scan() {
line := strings.TrimSpace(scanner.Text())
if line != "" {
str.WriteString(line)
str.WriteRune('\n')
}
}
if err := scanner.Err(); err != nil {
log.Fatal(err)
}
}()
str.WriteString("</script>{{end}}")
}
}
out, err := os.Create("osa_gen_darwin.go")
if err != nil {
log.Fatal(err)
}
err = generator.Execute(out, str.String())
if err != nil {
log.Fatal(err)
}
err = out.Close()
if err != nil {
log.Fatal(err)
}
}
var generator = template.Must(template.New("").Parse(`// Code generated by zenity; DO NOT EDIT.
2020-01-05 07:37:45 -05:00
package osa
2020-01-04 22:21:39 -05:00
import "html/template"
2020-01-05 07:37:45 -05:00
var scripts = template.Must(template.New("").Parse(` + "`{{.}}`" + `))
2020-01-04 22:21:39 -05:00
`))