Skip to content

Commit 3d2aedb

Browse files
committed
pass-through optional args to get(); just use stderr instead of buffers
1 parent 82a594a commit 3d2aedb

File tree

5 files changed

+31
-31
lines changed

5 files changed

+31
-31
lines changed

execute.go

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package main
22

33
import (
44
"bytes"
5-
"errors"
65
"io"
76
"io/ioutil"
87
"os"
@@ -70,21 +69,13 @@ func executeCustom(src io.Reader, imports []string, body string) error {
7069
return err
7170
}
7271

73-
var stderr bytes.Buffer
74-
7572
// call `go run` on these files & send back output/err
7673
cmd := exec.Command("go", "run", main.Name(), imps.Name())
7774
cmd.Stdout = out
78-
cmd.Stderr = &stderr
79-
80-
cmderr := cmd.Run()
75+
cmd.Stderr = os.Stderr
8176

82-
if s := trimBuffer(stderr); len(s) > 0 {
83-
return errors.New(s)
84-
}
85-
86-
if cmderr != nil {
87-
return cmderr
77+
if err := cmd.Run(); err != nil {
78+
return err
8879
}
8980

9081
return nil

get.go

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
package main
22

33
import (
4-
"bytes"
5-
"errors"
64
"go/parser"
75
"go/token"
86
"os"
@@ -11,29 +9,23 @@ import (
119
)
1210

1311
// get runs `go get` for required typewriters, either default or specified in _gen.go
14-
func get() error {
12+
func get(args []string) error {
1513
imports, err := getTypewriterImports()
1614

1715
if err != nil {
1816
return err
1917
}
2018

2119
get := []string{"get"}
22-
20+
get = append(get, args...)
2321
get = append(get, imports...)
2422

25-
var outerr bytes.Buffer
26-
2723
cmd := exec.Command("go", get...)
2824
cmd.Stdout = out
29-
cmd.Stderr = &outerr
25+
cmd.Stderr = os.Stderr
3026

3127
if err := cmd.Run(); err != nil {
32-
return err
33-
}
34-
35-
if outerr.Len() > 0 {
36-
return errors.New(outerr.String())
28+
return nil
3729
}
3830

3931
return nil

get_test.go

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ import (
66
)
77

88
func TestGet(t *testing.T) {
9+
// just run it; not a great test but at least covers the code
10+
if err := get([]string{}); err != nil {
11+
t.Error(err)
12+
}
13+
14+
if err := get([]string{"-d"}); err != nil {
15+
t.Error(err)
16+
}
17+
}
18+
19+
func TestGetImports(t *testing.T) {
920
// use custom name so test won't interfere with a real _gen.go
1021
setCustomName("_gen_test.go")
1122
defer revertCustomName()

help.go

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,14 @@ type helpInfo struct {
2121

2222
var helpTmpl = template.Must(template.New("help").Parse(`
2323
Usage:
24-
{{.Name}} Generate files for types marked with +gen
25-
{{.Name}} get Download and install typewriters (standard or custom)
26-
{{.Name}} list List available typewriters (standard or custom)
27-
{{.Name}} custom Create a standard {{.CustomName}} file for importing custom typewriters
28-
{{.Name}} help Print usage
24+
{{.Name}} Generate files for types marked with +gen.
25+
{{.Name}} get Download and install typewriters (standard or custom).
26+
Optional flags from go get: [-d] [-fix] [-t] [-u].
27+
{{.Name}} list List available typewriters (standard or custom).
28+
{{.Name}} custom Create a standard {{.CustomName}} file for importing
29+
custom typewriters.
30+
{{.Name}} help Print usage.
2931
3032
Further details are available at http://clipperhouse.github.io/gen
33+
3134
`))

main.go

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,8 +19,11 @@ func main() {
1919
case "custom":
2020
err = custom()
2121
case "get":
22-
err = get()
23-
// TODO: pass subsequent flags (such as -u) to get
22+
var tail []string
23+
if len(args) > 2 {
24+
tail = args[2:]
25+
}
26+
err = get(tail)
2427
case "help":
2528
err = help()
2629
case "list":

0 commit comments

Comments
 (0)