github.com/codyleyhan/gqlgen@v0.4.4/codegen/templates/inliner/inliner.go (about) 1 package main 2 3 import ( 4 "bytes" 5 "io/ioutil" 6 "strconv" 7 "strings" 8 9 "golang.org/x/tools/imports" 10 ) 11 12 func main() { 13 dir := "./" 14 15 files, err := ioutil.ReadDir(dir) 16 if err != nil { 17 panic(err) 18 } 19 20 out := bytes.Buffer{} 21 out.WriteString("package templates\n\n") 22 out.WriteString("var data = map[string]string{\n") 23 24 for _, f := range files { 25 if !strings.HasSuffix(f.Name(), ".gotpl") { 26 continue 27 } 28 29 b, err := ioutil.ReadFile(dir + f.Name()) 30 if err != nil { 31 panic(err) 32 } 33 34 out.WriteString(strconv.Quote(f.Name())) 35 out.WriteRune(':') 36 out.WriteString(strconv.Quote(string(b))) 37 out.WriteString(",\n") 38 } 39 40 out.WriteString("}\n") 41 42 formatted, err2 := imports.Process(dir+"data.go", out.Bytes(), nil) 43 if err2 != nil { 44 panic(err2) 45 } 46 47 ioutil.WriteFile(dir+"data.go", formatted, 0644) 48 }