kindsys: Fix CUE code generation on Windows (#62812)

* fix Windows paths

* fix remaining paths issues

* clean up multiple use of Dir()

* fix headers in generated files
This commit is contained in:
Agnès Toulet
2023-02-02 21:06:55 +01:00
committed by GitHub
parent 060e0a4d18
commit 121e384fab
6 changed files with 8 additions and 10 deletions

View File

@@ -47,7 +47,7 @@ func SlashHeaderMapper(maingen string) codejen.FileMapper {
buf := new(bytes.Buffer)
if err := tmpls.Lookup("gen_header.tmpl").Execute(buf, tvars_gen_header{
MainGenerator: maingen,
MainGenerator: filepath.ToSlash(maingen),
Using: f.From,
Leader: leader,
}); err != nil {

View File

@@ -116,7 +116,7 @@ func prefixFS(prefix string, fsys fs.FS) (fs.FS, error) {
return nil
}
b, err := fs.ReadFile(fsys, path)
b, err := fs.ReadFile(fsys, filepath.ToSlash(path))
if err != nil {
return err
}
@@ -217,7 +217,7 @@ func BuildGrafanaInstance(ctx *cue.Context, relpath string, pkg string, overlay
//
// NOTE This function will be deprecated in favor of a more generic loader
func LoadInstanceWithGrafana(fsys fs.FS, dir string, opts ...load.Option) (*build.Instance, error) {
if modf, err := fs.ReadFile(fsys, filepath.Join("cue.mod", "module.cue")); err != nil {
if modf, err := fs.ReadFile(fsys, "cue.mod/module.cue"); err != nil {
// delegate error handling
return load.InstanceWithThema(fsys, dir, opts...)
} else if modname, err := cuecontext.New().CompileBytes(modf).LookupPath(cue.MakePath(cue.Str("module"))).String(); err != nil {

View File

@@ -33,7 +33,7 @@ func (psr *declParser) Parse(root fs.FS) ([]*PluginDecl, error) {
decls := make([]*PluginDecl, 0)
for _, plugin := range plugins {
path := filepath.Dir(plugin)
path := filepath.ToSlash(filepath.Dir(plugin))
base := filepath.Base(path)
if skip, ok := psr.skip[base]; ok && skip {
continue

View File

@@ -235,7 +235,7 @@ func ParsePluginFS(fsys fs.FS, rt *thema.Runtime) (ParsedPlugin, error) {
}
func ensureCueMod(fsys fs.FS, pdef plugindef.PluginDef) (fs.FS, error) {
if modf, err := fs.ReadFile(fsys, filepath.Join("cue.mod", "module.cue")); err != nil {
if modf, err := fs.ReadFile(fsys, "cue.mod/module.cue"); err != nil {
if !errors.Is(err, fs.ErrNotExist) {
return nil, err
}

View File

@@ -10,7 +10,6 @@ import (
"fmt"
"os"
"path/filepath"
"strings"
"cuelang.org/go/cue/cuecontext"
"github.com/dave/dst"
@@ -40,8 +39,8 @@ func main() {
fmt.Fprintf(os.Stderr, "could not get working directory: %s", err)
os.Exit(1)
}
grootp := strings.Split(cwd, string(os.PathSeparator))
groot := filepath.Join(string(os.PathSeparator), filepath.Join(grootp[:len(grootp)-3]...))
groot := filepath.Clean(filepath.Join(cwd, "../../.."))
jfs := elsedie(jl.GenerateFS(lin))("plugindef jenny pipeline failed")
if _, set := os.LookupEnv("CODEGEN_VERIFY"); set {

View File

@@ -43,8 +43,7 @@ func main() {
if err != nil {
log.Fatal(fmt.Errorf("could not get working directory: %s", err))
}
grootp := strings.Split(cwd, sep)
groot := filepath.Join(sep, filepath.Join(grootp[:len(grootp)-3]...))
groot := filepath.Clean(filepath.Join(cwd, "../../.."))
rt := cuectx.GrafanaThemaRuntime()
pluginKindGen := codejen.JennyListWithNamer(func(d *pfs.PluginDecl) string {