File tree Expand file tree Collapse file tree 3 files changed +28
-10
lines changed
Expand file tree Collapse file tree 3 files changed +28
-10
lines changed Original file line number Diff line number Diff line change @@ -11,6 +11,8 @@ PKG_NAME=github.com/$(GITHUB_USER)/$(PRJ_NAME)
1111BIN_NAME =trygolang
1212CMD_PKG =$(PKG_NAME ) /cmd/$(BIN_NAME )
1313
14+ EXAMPLE =""
15+
1416.PHONY : all
1517all : clean build test
1618
2931
3032.PHONY : run
3133run : clean build
32- ./$(BIN_NAME ) -onetime
34+ ./$(BIN_NAME ) -onetime -example ${EXAMPLE}
3335 rm -f ./$(BIN_NAME )
3436
Original file line number Diff line number Diff line change @@ -8,6 +8,8 @@ type Args struct {
88 OneTime bool
99 // 実行可能な名前を表示するかどうか
1010 ShowNames bool
11+ // 実行するサンプル名
12+ ExampleName string
1113}
1214
1315// NewArgs は、Argsのコンストラクタ関数です
@@ -19,6 +21,7 @@ func NewArgs() *Args {
1921func (a * Args ) Parse () {
2022 flag .BoolVar (& a .OneTime , "onetime" , false , "run only one time" )
2123 flag .BoolVar (& a .ShowNames , "list" , false , "show all example names" )
24+ flag .StringVar (& a .ExampleName , "example" , "" , "name of example" )
2225
2326 flag .Parse ()
2427}
Original file line number Diff line number Diff line change @@ -62,12 +62,13 @@ func exec(target string) error {
6262 return nil
6363}
6464
65- func main () {
66- if args .ShowNames {
67- printAllExampleNames ()
68- return
65+ func runOnce () {
66+ if err := exec (args .ExampleName ); err != nil {
67+ log .Fatal (err )
6968 }
69+ }
7070
71+ func runLoop () {
7172 fmt .Print ("ENTER EXAMPLE NAME: " )
7273
7374 stdinScanner := bufio .NewScanner (os .Stdin )
@@ -103,10 +104,7 @@ func main() {
103104 isPerfectMatchFound := false
104105 for _ , c := range candidates {
105106 if c == userInput {
106- if err := exec (userInput ); err != nil {
107- log .Fatal (err )
108- }
109-
107+ runOnce ()
110108 isPerfectMatchFound = true
111109 break
112110 }
@@ -131,6 +129,21 @@ func main() {
131129 fmt .Print ("\n \n " )
132130 fmt .Print ("ENTER EXAMPLE NAME: " )
133131 }
132+ }
133+
134+ func main () {
135+ if args .ShowNames {
136+ printAllExampleNames ()
137+ os .Exit (0 )
138+ }
139+
140+ defer fmt .Println ("END" )
141+
142+ if args .ExampleName != "" {
143+ runOnce ()
144+ } else {
145+ runLoop ()
146+ }
134147
135- fmt . Println ( "END" )
148+ os . Exit ( 0 )
136149}
You can’t perform that action at this time.
0 commit comments