diff --git a/lib/builder.go b/lib/builder.go index 0181812..73c3f2a 100644 --- a/lib/builder.go +++ b/lib/builder.go @@ -18,9 +18,10 @@ type builder struct { binary string errors string useGodep bool + useGb bool } -func NewBuilder(dir string, bin string, useGodep bool) Builder { +func NewBuilder(dir string, bin string, useGodep bool, useGb bool) Builder { if len(bin) == 0 { bin = "bin" } @@ -32,7 +33,7 @@ func NewBuilder(dir string, bin string, useGodep bool) Builder { } } - return &builder{dir: dir, binary: bin, useGodep: useGodep} + return &builder{dir: dir, binary: bin, useGodep: useGodep, useGb: useGb} } func (b *builder) Binary() string { @@ -47,6 +48,8 @@ func (b *builder) Build() error { var command *exec.Cmd if b.useGodep { command = exec.Command("godep", "go", "build", "-o", b.binary) + } else if b.useGb { + command = exec.Command("gb", "build") } else { command = exec.Command("go", "build", "-o", b.binary) } diff --git a/lib/builder_test.go b/lib/builder_test.go index 73d039e..2253e32 100644 --- a/lib/builder_test.go +++ b/lib/builder_test.go @@ -15,7 +15,7 @@ func Test_Builder_Build_Success(t *testing.T) { bin += ".exe" } - builder := gin.NewBuilder(wd, bin, false) + builder := gin.NewBuilder(wd, bin, false, false) err := builder.Build() expect(t, err, nil) diff --git a/main.go b/main.go index e9310a0..3eb58d4 100644 --- a/main.go +++ b/main.go @@ -43,7 +43,7 @@ func main() { cli.StringFlag{ Name: "bin,b", Value: "gin-bin", - Usage: "name of generated binary file", + Usage: "name of generated binary file. If using gb, absolute path to binary file.", }, cli.StringFlag{ Name: "path,t", @@ -58,6 +58,10 @@ func main() { Name: "godep,g", Usage: "use godep when building", }, + cli.BoolFlag{ + Name: "usegb,gb", + Usage: "use gb when building", + }, } app.Commands = []cli.Command{ { @@ -93,8 +97,14 @@ func MainAction(c *cli.Context) { logger.Fatal(err) } - builder := gin.NewBuilder(c.GlobalString("path"), c.GlobalString("bin"), c.GlobalBool("godep")) - runner := gin.NewRunner(filepath.Join(wd, builder.Binary()), c.Args()...) + builder := gin.NewBuilder(c.GlobalString("path"), c.GlobalString("bin"), c.GlobalBool("godep"), c.GlobalBool("gb")) + + binFilepath := filepath.Join(wd, builder.Binary()) + if c.GlobalBool("gb") { + binFilepath = builder.Binary() + } + runner := gin.NewRunner(binFilepath, c.Args()...) + runner.SetWriter(os.Stdout) proxy := gin.NewProxy(builder, runner)