added exports

This commit is contained in:
Hazel Noack 2025-07-01 11:36:31 +02:00
parent 397f344885
commit 6125867cea
15 changed files with 79 additions and 25 deletions

24
exports.go Normal file
View File

@ -0,0 +1,24 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:32:34.988359534 +0200 CEST m=+36.555541212
// It exports the Dictionaries for easy use
package main
import (
"gitea.elara.ws/Hazel/go-words/internal/dictionary"
)
var AmericanEnglish = dictionary.AmericanEnglish
var Brazilian = dictionary.Brazilian
var BritishEnglish = dictionary.BritishEnglish
var CracklibSmall = dictionary.CracklibSmall
var French = dictionary.French
var Italian = dictionary.Italian
var Ngerman = dictionary.Ngerman
var Ogerman = dictionary.Ogerman
var Portuguese = dictionary.Portuguese
var Spanish = dictionary.Spanish
var Swiss = dictionary.Swiss
var Words = dictionary.Words

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:09:48.109934465 +0200 CEST m=+0.543745683
// 2025-07-01 11:31:59.285464586 +0200 CEST m=+0.852646276
// using data from
// /usr/share/dict/american-english
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:09:50.680209997 +0200 CEST m=+3.114021211
// 2025-07-01 11:32:02.247699057 +0200 CEST m=+3.814880729
// using data from
// /usr/share/dict/brazilian
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:09:53.474330852 +0200 CEST m=+5.908142075
// 2025-07-01 11:32:04.843870152 +0200 CEST m=+6.411051818
// using data from
// /usr/share/dict/british-english
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:09:54.634847345 +0200 CEST m=+7.068658569
// 2025-07-01 11:32:05.852284263 +0200 CEST m=+7.419465960
// using data from
// /usr/share/dict/cracklib-small
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:09:57.117352243 +0200 CEST m=+9.551163456
// 2025-07-01 11:32:08.768649692 +0200 CEST m=+10.335831451
// using data from
// /usr/share/dict/french
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:09:59.571504161 +0200 CEST m=+12.005315373
// 2025-07-01 11:32:11.350897568 +0200 CEST m=+12.918079237
// using data from
// /usr/share/dict/italian
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:10:02.754154395 +0200 CEST m=+15.187965608
// 2025-07-01 11:32:14.500934577 +0200 CEST m=+16.068116246
// using data from
// /usr/share/dict/ngerman
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:10:08.076968748 +0200 CEST m=+20.510779963
// 2025-07-01 11:32:19.034688991 +0200 CEST m=+20.601870658
// using data from
// /usr/share/dict/ogerman
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:10:15.007316041 +0200 CEST m=+27.441127269
// 2025-07-01 11:32:23.873689829 +0200 CEST m=+25.440871511
// using data from
// /usr/share/dict/portuguese
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:10:18.794974706 +0200 CEST m=+31.228785917
// 2025-07-01 11:32:27.258877258 +0200 CEST m=+28.826058926
// using data from
// /usr/share/dict/spanish
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:10:22.051859644 +0200 CEST m=+34.485670858
// 2025-07-01 11:32:30.830794679 +0200 CEST m=+32.397976353
// using data from
// /usr/share/dict/swiss
package dictionary

View File

@ -1,6 +1,6 @@
// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// 2025-07-01 11:10:25.381877881 +0200 CEST m=+37.815689116
// 2025-07-01 11:32:34.372204616 +0200 CEST m=+35.939386287
// using data from
// /usr/share/dict/words
package dictionary

View File

@ -17,7 +17,7 @@ const Directory = "/usr/share/dict"
var nonAlphanumericRegex = regexp.MustCompile(`[^a-zA-Z0-9 ]+`)
var wordsTemplate = template.Must(template.New("").Parse(`// Code generated by go generate; DO NOT EDIT.
var dictionaryTemplate = template.Must(template.New("").Parse(`// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// {{ .Timestamp }}
// using data from
@ -35,14 +35,35 @@ var {{ .VarName }} = internal.Dictionary{
}
`))
type templateData struct {
type dictionaryTemplateData struct {
Timestamp time.Time
Path string
Words []string
VarName string
}
func generateFile(name string) {
var exportTemplate = template.Must(template.New("").Parse(`// Code generated by go generate; DO NOT EDIT.
// This file was generated by robots at
// {{ .Timestamp }}
// It exports the Dictionaries for easy use
package main
import (
"gitea.elara.ws/Hazel/go-words/internal/dictionary"
)
{{range $VarName := .VarNames }}
var {{ $VarName }} = dictionary.{{ $VarName }}
{{- end }}
`))
type exportTemplateData struct {
Timestamp time.Time
VarNames []string
}
func generateFile(name string) string {
fmt.Println("generating file for dictionary " + name)
lowerName := strings.ToLower(name)
@ -73,12 +94,15 @@ func generateFile(name string) {
die(err)
defer f.Close()
wordsTemplate.Execute(f, templateData{
varName := nonAlphanumericRegex.ReplaceAllString(strings.Title(name), "")
dictionaryTemplate.Execute(f, dictionaryTemplateData{
Timestamp: time.Now(),
Path: Path,
Words: words,
VarName: nonAlphanumericRegex.ReplaceAllString(strings.Title(name), ""),
VarName: varName,
})
return varName
}
func main() {
@ -89,13 +113,20 @@ func main() {
die(err)
}
varNames := make([]string, 0)
for _, e := range entries {
if !strings.Contains(e.Name(), ".") {
generateFile(e.Name())
varNames = append(varNames, generateFile(e.Name()))
}
}
// generateFile("words")
f, err := os.Create("exports.go")
die(err)
defer f.Close()
exportTemplate.Execute(f, exportTemplateData{
Timestamp: time.Now(),
VarNames: varNames,
})
}
func die(err error) {

11
main.go
View File

@ -1,13 +1,12 @@
package main
import (
"fmt"
"gitea.elara.ws/Hazel/go-words/internal/dictionary"
)
import "fmt"
//go:generate go run internal/gen.go
func main() {
fmt.Println(dictionary.Brazilian.GetRandomWord())
fmt.Println(Words.Contains("hello"))
fmt.Println(Words.GetRandomWord())
fmt.Println(Brazilian.GetRandomWord())
fmt.Println(CracklibSmall.GetRandomWord())
}