diff --git a/cmd/create.go b/cmd/create.go index 8e2cdede5..6b25fa4d3 100644 --- a/cmd/create.go +++ b/cmd/create.go @@ -28,8 +28,8 @@ func Create(projectName string, outDir string, t *templator.Templator) string { } var wg sync.WaitGroup - util.TemplateFileIfDoesNotExist(rootDir, "commit0.yml", t.Commit0, wg, projectName) - util.TemplateFileIfDoesNotExist(rootDir, ".gitignore", t.GitIgnore, wg, projectName) + util.TemplateFileIfDoesNotExist(rootDir, "commit0.yml", t.Commit0, &wg, projectName) + util.TemplateFileIfDoesNotExist(rootDir, ".gitignore", t.GitIgnore, &wg, projectName) wg.Wait() return rootDir diff --git a/cmd/generate.go b/cmd/generate.go index 1386c0781..3ae64c052 100644 --- a/cmd/generate.go +++ b/cmd/generate.go @@ -52,20 +52,20 @@ var generateCmd = &cobra.Command{ var wg sync.WaitGroup switch language { case Go: - proto.Generate(t, cfg, wg) - golang.Generate(t, cfg, wg) + proto.Generate(t, cfg, &wg) + golang.Generate(t, cfg, &wg) - docker.GenerateGoAppDockerFile(t, cfg, wg) - docker.GenerateGoDockerCompose(t, cfg, wg) + docker.GenerateGoAppDockerFile(t, cfg, &wg) + docker.GenerateGoDockerCompose(t, cfg, &wg) case React: - react.Generate(t, cfg, wg) + react.Generate(t, cfg, &wg) } - util.TemplateFileIfDoesNotExist("", "README.md", t.Readme, wg, cfg) + util.TemplateFileIfDoesNotExist("", "README.md", t.Readme, &wg, cfg) if cfg.Network.Http.Enabled { - http.GenerateHTTPGW(t, cfg, wg) - docker.GenerateGoHTTPGWDockerFile(t, cfg, wg) + http.GenerateHTTPGW(t, cfg, &wg) + docker.GenerateGoHTTPGWDockerFile(t, cfg, &wg) } wg.Wait() diff --git a/internal/generate/docker/generate.go b/internal/generate/docker/generate.go index 6bcef3247..932acc204 100644 --- a/internal/generate/docker/generate.go +++ b/internal/generate/docker/generate.go @@ -8,14 +8,14 @@ import ( "github.com/commitdev/commit0/internal/util" ) -func GenerateGoAppDockerFile(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func GenerateGoAppDockerFile(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { util.TemplateFileIfDoesNotExist("docker/app", "Dockerfile", templator.Docker.ApplicationDocker, wg, config) } -func GenerateGoHTTPGWDockerFile(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func GenerateGoHTTPGWDockerFile(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { util.TemplateFileIfDoesNotExist("docker/http", "Dockerfile", templator.Docker.HttpGatewayDocker, wg, config) } -func GenerateGoDockerCompose(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func GenerateGoDockerCompose(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { util.TemplateFileIfDoesNotExist("", "docker-compose.yml", templator.Docker.DockerCompose, wg, config) } diff --git a/internal/generate/golang/generate.go b/internal/generate/golang/generate.go index 800b12c24..87ce8b8df 100644 --- a/internal/generate/golang/generate.go +++ b/internal/generate/golang/generate.go @@ -11,14 +11,14 @@ import ( "github.com/commitdev/commit0/internal/util" ) -func Generate(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func Generate(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { util.TemplateFileIfDoesNotExist("", "main.go", templator.Go.GoMain, wg, config) util.TemplateFileIfDoesNotExist("", "go.mod", templator.Go.GoMod, wg, config) util.TemplateFileIfDoesNotExist("server/health", "health.go", templator.Go.GoHealthServer, wg, config) GenerateServers(templator, config, wg) } -func GenerateServers(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func GenerateServers(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { serverDirPath := "server" err := util.CreateDirIfDoesNotExist(serverDirPath) if err != nil { diff --git a/internal/generate/http/generate.go b/internal/generate/http/generate.go index 2e53d8a52..06afe36c4 100644 --- a/internal/generate/http/generate.go +++ b/internal/generate/http/generate.go @@ -8,6 +8,6 @@ import ( "github.com/commitdev/commit0/internal/util" ) -func GenerateHTTPGW(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func GenerateHTTPGW(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { util.TemplateFileAndOverwrite("http", "main.go", templator.Go.GoHTTPGW, wg, config) } diff --git a/internal/generate/proto/generate.go b/internal/generate/proto/generate.go index 68e9a5cc1..3eaaad8c5 100644 --- a/internal/generate/proto/generate.go +++ b/internal/generate/proto/generate.go @@ -12,7 +12,7 @@ import ( "github.com/commitdev/commit0/internal/util" ) -func Generate(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func Generate(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { idlPath := fmt.Sprintf("%s-idl", config.Name) idlHealthPath := fmt.Sprintf("%s/proto/health", idlPath) @@ -24,7 +24,7 @@ func Generate(templator *templator.Templator, config *config.Commit0Config, wg s GenerateProtoServiceLibs(config) } -func GenerateServiceProtobufFiles(templator *templator.Templator, cfg *config.Commit0Config, wg sync.WaitGroup) { +func GenerateServiceProtobufFiles(templator *templator.Templator, cfg *config.Commit0Config, wg *sync.WaitGroup) { protoPath := fmt.Sprintf("%s-idl/proto", cfg.Name) for _, s := range cfg.Services { serviceProtoDir := fmt.Sprintf("%s/%s", protoPath, s.Name) diff --git a/internal/generate/react/generate.go b/internal/generate/react/generate.go index e48fa4685..15dff478b 100644 --- a/internal/generate/react/generate.go +++ b/internal/generate/react/generate.go @@ -7,6 +7,6 @@ import ( "github.com/commitdev/commit0/internal/templator" ) -func Generate(templator *templator.Templator, config *config.Commit0Config, wg sync.WaitGroup) { +func Generate(templator *templator.Templator, config *config.Commit0Config, wg *sync.WaitGroup) { templator.React.TemplateFiles(config, false, wg) } diff --git a/internal/templator/templator.go b/internal/templator/templator.go index e0ca409f4..2369164ab 100644 --- a/internal/templator/templator.go +++ b/internal/templator/templator.go @@ -97,7 +97,7 @@ type DirectoryTemplator struct { Templates []*template.Template } -func (d *DirectoryTemplator) TemplateFiles(config *config.Commit0Config, overwrite bool, wg sync.WaitGroup) { +func (d *DirectoryTemplator) TemplateFiles(config *config.Commit0Config, overwrite bool, wg *sync.WaitGroup) { for _, template := range d.Templates { d, f := filepath.Split(template.Name()) if strings.HasSuffix(f, ".tmpl") { diff --git a/internal/util/util.go b/internal/util/util.go index 90aee3905..dc4c887ec 100644 --- a/internal/util/util.go +++ b/internal/util/util.go @@ -22,7 +22,7 @@ var FuncMap = template.FuncMap{ "Title": strings.Title, } -func createTemplatedFile(fullFilePath string, template *template.Template, wg sync.WaitGroup, data interface{}) { +func createTemplatedFile(fullFilePath string, template *template.Template, wg *sync.WaitGroup, data interface{}) { f, err := os.Create(fullFilePath) if err != nil { log.Printf("Error creating file: %v", err) @@ -33,11 +33,12 @@ func createTemplatedFile(fullFilePath string, template *template.Template, wg sy if err != nil { log.Printf("Error templating: %v", err) } + log.Printf("Finished templating : %v", fullFilePath) wg.Done() }() } -func TemplateFileAndOverwrite(fileDir string, fileName string, template *template.Template, wg sync.WaitGroup, data interface{}) { +func TemplateFileAndOverwrite(fileDir string, fileName string, template *template.Template, wg *sync.WaitGroup, data interface{}) { fullFilePath := fmt.Sprintf("%v/%v", fileDir, fileName) err := os.MkdirAll(fileDir, os.ModePerm) if err != nil { @@ -47,7 +48,7 @@ func TemplateFileAndOverwrite(fileDir string, fileName string, template *templat } -func TemplateFileIfDoesNotExist(fileDir string, fileName string, template *template.Template, wg sync.WaitGroup, data interface{}) { +func TemplateFileIfDoesNotExist(fileDir string, fileName string, template *template.Template, wg *sync.WaitGroup, data interface{}) { fullFilePath := path.Join(fileDir, fileName) if _, err := os.Stat(fullFilePath); os.IsNotExist(err) {