Skip to content

Commit a12369e

Browse files
committed
Add run parameter (-example)
1 parent c7d4720 commit a12369e

File tree

3 files changed

+28
-10
lines changed

3 files changed

+28
-10
lines changed

Makefile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ PKG_NAME=github.com/$(GITHUB_USER)/$(PRJ_NAME)
1111
BIN_NAME=trygolang
1212
CMD_PKG=$(PKG_NAME)/cmd/$(BIN_NAME)
1313

14+
EXAMPLE=""
15+
1416
.PHONY: all
1517
all: clean build test
1618

@@ -29,6 +31,6 @@ clean:
2931

3032
.PHONY: run
3133
run: clean build
32-
./$(BIN_NAME) -onetime
34+
./$(BIN_NAME) -onetime -example ${EXAMPLE}
3335
rm -f ./$(BIN_NAME)
3436

cmd/trygolang/args.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff 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 {
1921
func (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
}

cmd/trygolang/main.go

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff 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
}

0 commit comments

Comments
 (0)