Skip to content

Commit 682eb3d

Browse files
committed
Saving progress: trying to test actual controller generation
1 parent 4fdd0b3 commit 682eb3d

File tree

4 files changed

+61
-6
lines changed

4 files changed

+61
-6
lines changed

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,3 +19,5 @@
1919

2020
# Go workspace file
2121
go.work
22+
23+
test/

cmd/generate.cmd.go

Lines changed: 58 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,71 @@
11
package cmd
22

33
import (
4+
"fmt"
5+
"log"
6+
"os"
47
"sync"
8+
"text/template"
59

610
"github.com/ev-the-dev/bootmaker/models"
11+
ct "github.com/ev-the-dev/bootmaker/templates"
712
)
813

914
var wg sync.WaitGroup
1015

16+
var tempFuncs = template.FuncMap{
17+
"formatModuleName": formatModuleName,
18+
}
19+
1120
func generateFiles(answers *models.WizardAnswers) {
21+
defer wg.Wait()
22+
23+
cwd, cwdErr := os.Getwd()
24+
if cwdErr != nil {
25+
log.Fatalf("Unable to get Current Working Directory: %v", cwdErr)
26+
}
27+
28+
if answers.Controller {
29+
wg.Add(1)
30+
go generateController(cwd, answers.ModuleName)
31+
}
32+
}
33+
34+
func generateController(cwd string, moduleName string) error {
35+
fmt.Printf("\n#####\n%s\n#####\n", yellowText("Generating Controller"))
36+
mkDirErr := os.MkdirAll(fmt.Sprintf("%s/controllers/", cwd), 0744)
37+
if mkDirErr != nil {
38+
fmt.Printf("\n!!!!!\n%s\n!!!!!\nerr: %v\n", redText("Unable to create controller directory"), mkDirErr)
39+
os.Exit(1)
40+
}
41+
42+
w, err := os.Create(fmt.Sprintf("%s/controllers/%s.controller.ts", cwd, moduleName))
43+
if err != nil {
44+
fmt.Printf("\n!!!!!\n%s\n!!!!!\nerr: %v\n", redText("Unable to create controller file"), err)
45+
os.Exit(1)
46+
}
47+
defer w.Close()
48+
49+
cTmpl := template.Must(template.New("controller").Funcs(tempFuncs).Parse(ct.ControllerTemplate))
50+
cTmpl.Execute(w, "")
51+
52+
fmt.Printf("\n#####\n%s\n#####\n", greenText("Done Generating Controller"))
53+
wg.Done()
54+
return nil
55+
}
56+
57+
func greenText(text string) string {
58+
return fmt.Sprintf("\x1b[32m%s\x1b[0m", text)
59+
}
60+
61+
func redText(text string) string {
62+
return fmt.Sprintf("\x1b[31m%s\x1b[0m", text)
63+
}
64+
65+
func yellowText(text string) string {
66+
return fmt.Sprintf("\x1b[33m%s\x1b[0m", text)
67+
}
1268

69+
func formatModuleName(name string) string {
70+
return "TEST"
1371
}

cmd/root.cmd.go

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,6 @@ func Execute() {
6363
Service: updatedWS.selected[models.SERVICE],
6464
}
6565

66-
// pass wA to write stream
6766
fmt.Printf("wizard answers::: %+v: ", wA)
6867
generateFiles(wA)
6968
}

templates/controller.template.go

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package templates
33
// NOTE: if module contains hyphen (-) need to consolidate that
44
// to PascalCase
55
var ControllerTemplate = `
6-
{{with $pMN := call formatModuleName .ModuleName}}
6+
{{with $pMN := call .formatModuleName .ModuleName}}
77
import { Controller } from "@nestjs/common"
88
99
import { {{.ModuleName}}ControllerAdapters } from "@{{.ModuleName}}/adapters/controller.adapters"
@@ -16,7 +16,3 @@ export class {{.ModuleName}}Controller {
1616
}
1717
{{end}}
1818
`
19-
20-
func formatModuleName(name string) string {
21-
return "TEST"
22-
}

0 commit comments

Comments
 (0)