Skip to content

Commit e85ae5d

Browse files
committed
Refactor runner/loop.go
1 parent 2ba575d commit e85ae5d

File tree

4 files changed

+13
-16
lines changed

4 files changed

+13
-16
lines changed

.gitignore

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,6 @@ fabric.properties
6969

7070
tags
7171

72-
trygolang
72+
bin/
7373
.target
7474
chinook.db

Makefile

Lines changed: 5 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,9 @@ CMD_PKG=$(PKG_NAME)/cmd/trygolang
1717

1818
EXAMPLE=""
1919

20-
ifdef ComSpec
21-
RM_CMD=del
22-
BIN_NAME=.\trygolang.exe
23-
BIN_DIR=.\cmd\trygolang
24-
else
25-
RM_CMD=rm -f
26-
BIN_NAME=./trygolang
27-
BIN_DIR=./cmd/trygolang
28-
endif
20+
RM_CMD=rm -f
21+
BIN_NAME=trygolang
22+
BIN_DIR=bin
2923

3024
.PHONY: all
3125
all: clean build test
@@ -47,7 +41,7 @@ _download_sqlite3_database:
4741

4842
.PHONY: build
4943
build: prepare
50-
$(GOBUILD) -race -o $(BIN_NAME) $(CMD_PKG)
44+
$(GOBUILD) -race -o bin/$(BIN_NAME) $(CMD_PKG)
5145

5246
.PHONY: test
5347
test: prepare
@@ -56,7 +50,7 @@ test: prepare
5650
.PHONY: clean
5751
clean: prepare
5852
$(GOCLEAN) -i $(CMD_PKG)
59-
$(RM_CMD) $(BIN_NAME)
53+
$(RM_CMD) $(BIN_DIR)/$(BIN_NAME)
6054

6155
.PHONY: install
6256
install: prepare

cmd/trygolang/main.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ func main() {
6161
if args.ExampleName != "" {
6262
r = runner.NewOnce(runner.NewOnceArgs(args.ExampleName, mapping))
6363
} else {
64-
r = runner.NewLoop(runner.NewLoopArgs(args.OneTime, mapping))
64+
r = runner.NewLoop(runner.NewLoopArgs(os.Stdin, args.OneTime, mapping))
6565
}
6666

6767
if err := r.Run(); err != nil {

runner/loop.go

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package runner
33
import (
44
"bufio"
55
"fmt"
6-
"os"
6+
"io"
77
"sort"
88
"strings"
99

@@ -18,14 +18,16 @@ type (
1818

1919
// LoopArgs -- Loop の引数データを表します.
2020
LoopArgs struct {
21+
In io.Reader // 入力
2122
OneTime bool // 一回実行で完了するかどうか
2223
Mapping mapping.ExampleMapping // マッピング情報
2324
}
2425
)
2526

2627
// NewLoopArgs -- 新しい LoopArgs を生成して返します.
27-
func NewLoopArgs(oneTime bool, m mapping.ExampleMapping) *LoopArgs {
28+
func NewLoopArgs(in io.Reader, oneTime bool, m mapping.ExampleMapping) *LoopArgs {
2829
a := new(LoopArgs)
30+
a.In = in
2931
a.OneTime = oneTime
3032
a.Mapping = m
3133
return a
@@ -41,13 +43,14 @@ func NewLoop(args *LoopArgs) *Loop {
4143
// Run -- 実行します.
4244
func (c *Loop) Run() error {
4345
var (
46+
in = c.Args.In
4447
oneTime = c.Args.OneTime
4548
mapping = c.Args.Mapping
4649
)
4750

4851
fmt.Print("ENTER EXAMPLE NAME: ")
4952

50-
stdinScanner := bufio.NewScanner(os.Stdin)
53+
stdinScanner := bufio.NewScanner(in)
5154
for stdinScanner.Scan() {
5255
var (
5356
numberOfCandidate int

0 commit comments

Comments
 (0)