71 lines
1.1 KiB
Go
71 lines
1.1 KiB
Go
// +build ignore
|
|
|
|
package main
|
|
|
|
import (
|
|
"log"
|
|
|
|
"bufio"
|
|
"os"
|
|
"text/template"
|
|
"time"
|
|
)
|
|
|
|
func main() {
|
|
wordsShort := loadWords("eff-short.txt")
|
|
wordsLong := loadWords("eff-long.txt")
|
|
|
|
f, err := os.Create("words.go")
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer f.Close()
|
|
|
|
packageTemplate.Execute(f, struct {
|
|
Timestamp time.Time
|
|
WordsShort []string
|
|
WordsLong []string
|
|
}{
|
|
Timestamp: time.Now(),
|
|
WordsShort: wordsShort,
|
|
WordsLong: wordsLong,
|
|
})
|
|
}
|
|
|
|
func loadWords(filename string) (words []string) {
|
|
f, err := os.Open(filename)
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
defer f.Close()
|
|
|
|
sc := bufio.NewScanner(f)
|
|
sc.Split(bufio.ScanWords)
|
|
for sc.Scan() {
|
|
sc.Scan()
|
|
words = append(words, sc.Text())
|
|
}
|
|
if sc.Err() != nil {
|
|
log.Fatal(err)
|
|
}
|
|
return
|
|
}
|
|
|
|
var packageTemplate = template.Must(template.New("").Parse(`// Code generated by go generate; DO NOT EDIT.
|
|
// This file was generated by robots at
|
|
// {{ .Timestamp }}
|
|
package pw
|
|
|
|
var WordsShort = []string{
|
|
{{- range .WordsShort }}
|
|
{{ printf "%q" . }},
|
|
{{- end }}
|
|
}
|
|
|
|
var WordsLong = []string{
|
|
{{- range .WordsLong }}
|
|
{{ printf "%q" . }},
|
|
{{- end }}
|
|
}
|
|
`))
|