github.com/go-enjin/golang-org-x-text@v0.12.1-enjin.2/internal/language/compact/gen.go (about) 1 // Copyright 2013 The Go Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style 3 // license that can be found in the LICENSE file. 4 5 //go:build ignore 6 // +build ignore 7 8 // Language tag table generator. 9 // Data read from the web. 10 11 package main 12 13 import ( 14 "flag" 15 "fmt" 16 "log" 17 18 "github.com/go-enjin/golang-org-x-text/internal/gen" 19 "github.com/go-enjin/golang-org-x-text/unicode/cldr" 20 ) 21 22 var ( 23 test = flag.Bool("test", 24 false, 25 "test existing tables; can be used to compare web data with package data.") 26 outputFile = flag.String("output", 27 "tables.go", 28 "output file for generated tables") 29 ) 30 31 func main() { 32 gen.Init() 33 34 w := gen.NewCodeWriter() 35 defer w.WriteGoFile("tables.go", "compact") 36 37 fmt.Fprintln(w, `import "github.com/go-enjin/golang-org-x-text/internal/language"`) 38 39 b := newBuilder(w) 40 gen.WriteCLDRVersion(w) 41 42 b.writeCompactIndex() 43 } 44 45 type builder struct { 46 w *gen.CodeWriter 47 data *cldr.CLDR 48 supp *cldr.SupplementalData 49 } 50 51 func newBuilder(w *gen.CodeWriter) *builder { 52 r := gen.OpenCLDRCoreZip() 53 defer r.Close() 54 d := &cldr.Decoder{} 55 data, err := d.DecodeZip(r) 56 if err != nil { 57 log.Fatal(err) 58 } 59 b := builder{ 60 w: w, 61 data: data, 62 supp: data.Supplemental(), 63 } 64 return &b 65 }