Convert to templates

Signed-off-by: jolheiser <john.olheiser@gmail.com>
This commit is contained in:
jolheiser
2021-08-06 14:05:10 -05:00
parent ba26dc6adc
commit 782f70ba21
10 changed files with 21461 additions and 4677 deletions

View File

@ -8,7 +8,6 @@ import (
"errors"
"fmt"
"io"
"log"
"net/http"
"os"
"path/filepath"
@ -18,9 +17,23 @@ import (
"text/template"
)
var (
//language=gohtml
langTmpl = `// Code generated by downloader.go; DO NOT EDIT.
package {{.Name}}
{{if ne .Name "en_us"}}
import "github.com/Tnze/go-mc/chat"
func init() { chat.SetLanguage(Map) }
{{end}}
var Map = {{.LangMap | printf "%#v"}}
`
)
//go:generate go run $GOFILE
//go:generate go fmt ./...
func main() {
fmt.Println("generating langs")
if len(os.Args) == 2 {
f, err := os.Open(os.Args[1])
if err != nil {
@ -33,13 +46,12 @@ func main() {
versionURL, err := assetIndexURL()
if err != nil {
log.Fatal(err)
panic(err)
}
log.Print("start generating lang packages")
resp, err := http.Get(versionURL)
if err != nil {
log.Fatal(err)
panic(err)
}
defer resp.Body.Close()
@ -52,7 +64,7 @@ func main() {
err = json.NewDecoder(resp.Body).Decode(&list)
if err != nil {
log.Fatal(err)
panic(err)
}
tasks := make(chan string)
@ -78,13 +90,11 @@ func main() {
}
func lang(name, hash string) {
log.Print("generating ", name, " package")
//download language
LangURL := "http://resources.download.minecraft.net/" + hash[:2] + "/" + hash
resp, err := http.Get(LangURL)
if err != nil {
log.Fatal(err)
panic(err)
}
defer resp.Body.Close()
readLang(name, resp.Body)
@ -95,7 +105,7 @@ func readLang(name string, r io.Reader) {
var LangMap map[string]string
err := json.NewDecoder(r).Decode(&LangMap)
if err != nil {
log.Fatal("unmarshal json fail: ", err)
panic(err)
}
trans(LangMap)
@ -104,12 +114,12 @@ func readLang(name string, r io.Reader) {
// mkdir
err = os.Mkdir(pName, 0777)
if err != nil && !os.IsExist(err) {
log.Fatal(err)
panic(err)
}
f, err := os.OpenFile(filepath.Join(pName, name+".go"), os.O_CREATE|os.O_RDWR|os.O_TRUNC, 0666)
if err != nil {
log.Fatal(err)
panic(err)
}
defer f.Close()
@ -123,18 +133,9 @@ func readLang(name string, r io.Reader) {
LangMap: LangMap,
}
tmpl := template.Must(template.New("code_template").Parse(
`// Code generated by downloader.go; DO NOT EDIT.
package {{.Name}}
{{if ne .Name "en_us"}}
import "github.com/Tnze/go-mc/chat"
func init() { chat.SetLanguage(Map) }
{{end}}
var Map = {{.LangMap | printf "%#v"}}
`))
tmpl := template.Must(template.New("").Parse(langTmpl))
if err := tmpl.Execute(f, genData); err != nil {
log.Fatal(err)
panic(err)
}
}
@ -150,7 +151,7 @@ func trans(m map[string]string) {
var index int
_, err := fmt.Sscanf(s, "%%%d$s", &index)
if err != nil {
log.Fatal(err)
panic(err)
}
return fmt.Sprintf("%%[%d]s", index)
})