diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..89f9ac0 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +out/ diff --git a/internal/generator/generator.go b/internal/generator/generator.go index da66f15..9d9e97b 100644 --- a/internal/generator/generator.go +++ b/internal/generator/generator.go @@ -3,6 +3,8 @@ package generator import ( "os" "path" + "path/filepath" + "strings" ) // todo: transform this to use concurrency @@ -13,7 +15,7 @@ func Generate(namespace string, features []Feature, outputDirectory string) erro return err } - path := path.Join(outputDirectory, namespace, file.Path) + path := path.Join(outputDirectory, namespace, strings.ReplaceAll(file.Path, "%namespace%",namespace)) if err := writeFile(path, file.Content); err != nil { return err } @@ -22,6 +24,10 @@ func Generate(namespace string, features []Feature, outputDirectory string) erro } func writeFile(path string, content []byte) error { + if err := os.MkdirAll(filepath.Dir(path), 0o755); err != nil { + return err + } + file, err := os.Create(path) if err != nil { return err