...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 package main
16
17 import (
18 "log"
19 "os"
20 "path/filepath"
21
22 "cuelang.org/go/cue"
23 "cuelang.org/go/cue/load"
24 "cuelang.org/go/encoding/gocode"
25 _ "cuelang.org/go/pkg"
26 )
27
28 func main() {
29 dirs, err := os.ReadDir("testdata")
30 if err != nil {
31 log.Fatal(err)
32 }
33
34 cwd, err := os.Getwd()
35 if err != nil {
36 log.Fatal(err)
37 }
38
39 for _, d := range dirs {
40 if !d.IsDir() {
41 continue
42 }
43 dir := filepath.Join(cwd, "testdata")
44 pkg := "." + string(filepath.Separator) + d.Name()
45 inst := cue.Build(load.Instances([]string{pkg}, &load.Config{
46 Dir: dir,
47 ModuleRoot: dir,
48 Module: "cuelang.org/go/encoding/gocode/testdata",
49 }))[0]
50 if err := inst.Err; err != nil {
51 log.Fatal(err)
52 }
53
54 goPkg := "./testdata/" + d.Name()
55 b, err := gocode.Generate(goPkg, inst, nil)
56 if err != nil {
57 log.Fatal(err)
58 }
59
60 goFile := filepath.Join("testdata", d.Name(), "cue_gen.go")
61 if err := os.WriteFile(goFile, b, 0644); err != nil {
62 log.Fatal(err)
63 }
64 }
65 }
66
View as plain text