Skip to content

Commit 33f3ed9

Browse files
authored
Merge pull request #5 from GeekTree0101/feature/procedural_command
Support a procedural command line scanner RunnerCommand
2 parents 1da75a7 + b8af8d2 commit 33f3ed9

File tree

1 file changed

+77
-18
lines changed

1 file changed

+77
-18
lines changed

runner.go

+77-18
Original file line numberDiff line numberDiff line change
@@ -41,31 +41,19 @@ func NewRunnerCommand(use string) *cobra.Command {
4141
Short: "generate source & unit tests files",
4242
Run: func(cmd *cobra.Command, args []string) {
4343

44-
fmt.Printf("\033[32m%s\033[0m\n", logo)
45-
4644
if len(name) == 0 {
4745
fmt.Println("[Error] invalid usecase name\033[0m")
4846
return
4947
}
5048

51-
gen := gen.NewGenerator(
52-
gen.Genflag{
53-
Name: name,
54-
UsecasesString: usecasesString,
55-
SourceDir: sourceDir,
56-
TestDir: testDir,
57-
ConfigFilePath: configFilePath,
58-
},
49+
run(
50+
name,
51+
usecasesString,
52+
sourceDir,
53+
testDir,
54+
configFilePath,
5955
)
6056

61-
err := gen.Run()
62-
63-
if err != nil {
64-
fmt.Printf("\033[31m[Error] failed to generate: %s\n\033[0m", err.Error())
65-
} else {
66-
fmt.Printf("\033[32m[Log] Done!\n\n\033[0m")
67-
}
68-
6957
},
7058
}
7159

@@ -78,3 +66,74 @@ func NewRunnerCommand(use string) *cobra.Command {
7866

7967
return genCmd
8068
}
69+
70+
// Procedural runner command
71+
// name: the prefix of the scene/screen
72+
// usecases
73+
// config path
74+
func NewProceduralRunnerCommand(use string) *cobra.Command {
75+
76+
var name string
77+
var usecasesString string
78+
var configFilePath string
79+
80+
genCmd := &cobra.Command{
81+
Use: use,
82+
Short: "generate source & unit tests files",
83+
Run: func(cmd *cobra.Command, args []string) {
84+
85+
fmt.Println("Please enter the prefix of the scene/screen.")
86+
fmt.Println("example: ArticleDetail or ChatList or UserList and so on")
87+
fmt.Print("insert: ")
88+
fmt.Scanln(&name)
89+
90+
fmt.Println("\nPlease enter usecases")
91+
fmt.Println("example: Fetch,Delete,Update")
92+
fmt.Print("insert: ")
93+
fmt.Scanln(&usecasesString)
94+
95+
fmt.Println("\nPlease enter the config file")
96+
fmt.Println("example: ./some_path/some_config.yaml")
97+
fmt.Print("insert: ")
98+
fmt.Scanln(&configFilePath)
99+
100+
run(
101+
name,
102+
usecasesString,
103+
"", // unused
104+
"", // unused
105+
configFilePath,
106+
)
107+
},
108+
}
109+
return genCmd
110+
}
111+
112+
func run(
113+
name string,
114+
usecasesString string,
115+
sourceDir string,
116+
testDir string,
117+
configFilePath string,
118+
) {
119+
120+
fmt.Printf("\033[32m%s\033[0m\n", logo)
121+
122+
gen := gen.NewGenerator(
123+
gen.Genflag{
124+
Name: name,
125+
UsecasesString: usecasesString,
126+
SourceDir: sourceDir,
127+
TestDir: testDir,
128+
ConfigFilePath: configFilePath,
129+
},
130+
)
131+
132+
err := gen.Run()
133+
134+
if err != nil {
135+
fmt.Printf("\033[31m[Error] failed to generate: %s\n\033[0m", err.Error())
136+
} else {
137+
fmt.Printf("\033[32m[Log] Done!\n\n\033[0m")
138+
}
139+
}

0 commit comments

Comments
 (0)