Skip to content

Commit e937262

Browse files
committed
pass by command line args
1 parent 69e5da9 commit e937262

File tree

3 files changed

+46
-32
lines changed

3 files changed

+46
-32
lines changed

cmd/goa/gen.go

+11-9
Original file line numberDiff line numberDiff line change
@@ -40,11 +40,12 @@ type Generator struct {
4040
tmpDir string
4141

4242
// hasVendorDirectory is a flag to indicate whether the project uses vendoring
43-
hasVendorDirectory bool
43+
hasVendorDirectory bool
44+
disableVersionString bool
4445
}
4546

4647
// NewGenerator creates a Generator.
47-
func NewGenerator(cmd string, path, output string) *Generator {
48+
func NewGenerator(cmd string, path, output string, disableVersionString bool) *Generator {
4849
bin := "goa"
4950
if runtime.GOOS == "windows" {
5051
bin += ".exe"
@@ -88,12 +89,13 @@ func NewGenerator(cmd string, path, output string) *Generator {
8889
}
8990

9091
return &Generator{
91-
Command: cmd,
92-
DesignPath: path,
93-
Output: output,
94-
DesignVersion: version,
95-
hasVendorDirectory: hasVendorDirectory,
96-
bin: bin,
92+
Command: cmd,
93+
DesignPath: path,
94+
Output: output,
95+
DesignVersion: version,
96+
hasVendorDirectory: hasVendorDirectory,
97+
bin: bin,
98+
disableVersionString: disableVersionString,
9799
}
98100
}
99101

@@ -139,7 +141,7 @@ func (g *Generator) Write(_ bool) error {
139141
codegen.NewImport("_", g.DesignPath),
140142
}
141143
sections = []*codegen.SectionTemplate{
142-
codegen.Header("Code Generator", "main", imports, false),
144+
codegen.Header("Code Generator", "main", imports, g.disableVersionString),
143145
{
144146
Name: "main",
145147
Source: mainT,

cmd/goa/main.go

+7-5
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,9 @@ func main() {
3939
}
4040

4141
var (
42-
output = "."
43-
debug bool
42+
output = "."
43+
debug bool
44+
disableVersionString bool
4445
)
4546
if len(os.Args) > offset+1 {
4647
var (
@@ -49,6 +50,7 @@ func main() {
4950
out = fset.String("output", output, "output `directory`")
5051
)
5152
fset.BoolVar(&debug, "debug", false, "Print debug information")
53+
fset.BoolVar(&disableVersionString, "disableVersionString", false, "Disable goa version string in generated code")
5254

5355
fset.Usage = usage
5456
if err := fset.Parse(os.Args[offset+1:]); err != nil {
@@ -62,7 +64,7 @@ func main() {
6264
}
6365
}
6466

65-
if err := gen(cmd, path, output, debug); err != nil {
67+
if err := gen(cmd, path, output, debug, disableVersionString); err != nil {
6668
fmt.Fprintln(os.Stderr, err.Error())
6769
os.Exit(1)
6870
}
@@ -74,7 +76,7 @@ var (
7476
gen = generate
7577
)
7678

77-
func generate(cmd, path, output string, debug bool) error {
79+
func generate(cmd, path, output string, debug bool, disableVersionString bool) error {
7880
var (
7981
files []string
8082
err error
@@ -85,7 +87,7 @@ func generate(cmd, path, output string, debug bool) error {
8587
goto fail
8688
}
8789

88-
tmp = NewGenerator(cmd, path, output)
90+
tmp = NewGenerator(cmd, path, output, disableVersionString)
8991

9092
if err = tmp.Write(debug); err != nil {
9193
goto fail

cmd/goa/main_test.go

+28-18
Original file line numberDiff line numberDiff line change
@@ -12,37 +12,44 @@ func TestCmdLine(t *testing.T) {
1212
testOutput = "testOutput"
1313
)
1414
var (
15-
usageCalled bool
16-
cmd string
17-
path, output string
18-
debug bool
15+
usageCalled bool
16+
cmd string
17+
path, output string
18+
debug bool
19+
disableVersionString bool
1920
)
2021

2122
usage = func() { usageCalled = true }
22-
gen = func(c string, p, o string, d bool) error { cmd, path, output, debug = c, p, o, d; return nil }
23+
gen = func(c string, p, o string, d bool, v bool) error {
24+
cmd, path, output, debug, disableVersionString = c, p, o, d, v
25+
return nil
26+
}
2327
defer func() {
2428
usage = help
2529
gen = generate
2630
}()
2731

2832
cases := map[string]struct {
29-
CmdLine string
30-
ExpectedUsage bool
31-
ExpectedCommand string
32-
ExpectedPath string
33-
ExpectedOutput string
34-
ExpectedDebug bool
33+
CmdLine string
34+
ExpectedUsage bool
35+
ExpectedCommand string
36+
ExpectedPath string
37+
ExpectedOutput string
38+
ExpectedDebug bool
39+
ExpectedDisableVersionString bool
3540
}{
36-
"gen": {"gen " + testPkg, false, "gen", testPkg, ".", false},
41+
"gen": {"gen " + testPkg, false, "gen", testPkg, ".", false, false},
42+
43+
"invalid": {"invalid " + testPkg, true, "", "", ".", false, false},
44+
"empty": {"", true, "", "", ".", false, false},
45+
"invalid gen": {"invalid gen" + testPkg, true, "", "", ".", false, false},
3746

38-
"invalid": {"invalid " + testPkg, true, "", "", ".", false},
39-
"empty": {"", true, "", "", ".", false},
40-
"invalid gen": {"invalid gen" + testPkg, true, "", "", ".", false},
47+
"output": {"gen " + testPkg + " -output " + testOutput, false, "gen", testPkg, testOutput, false, false},
48+
"output short": {"gen " + testPkg + " -o " + testOutput, false, "gen", testPkg, testOutput, false, false},
4149

42-
"output": {"gen " + testPkg + " -output " + testOutput, false, "gen", testPkg, testOutput, false},
43-
"output short": {"gen " + testPkg + " -o " + testOutput, false, "gen", testPkg, testOutput, false},
50+
"debug": {"gen " + testPkg + " -debug", false, "gen", testPkg, ".", true, false},
4451

45-
"debug": {"gen " + testPkg + " -debug", false, "gen", testPkg, ".", true},
52+
"disable version": {"gen " + testPkg + " -disableVersionString", false, "gen", testPkg, ".", false, true},
4653
}
4754

4855
for k, c := range cases {
@@ -73,5 +80,8 @@ func TestCmdLine(t *testing.T) {
7380
if debug != c.ExpectedDebug {
7481
t.Errorf("%s: Expected debug to be %v but got %v", k, c.ExpectedDebug, debug)
7582
}
83+
if disableVersionString != c.ExpectedDisableVersionString {
84+
t.Errorf("%s: Expected disableVersionString to be %v but got %v", k, c.ExpectedDisableVersionString, disableVersionString)
85+
}
7686
}
7787
}

0 commit comments

Comments
 (0)