github.com/hwaf/hwaf@v0.0.0-20140814122253-5465f73b20f1/cmd_waf.go (about) 1 package main 2 3 import ( 4 "os" 5 6 "github.com/gonuts/commander" 7 "github.com/gonuts/flag" 8 ) 9 10 func hwaf_make_cmd_waf() *commander.Command { 11 cmd := &commander.Command{ 12 Run: hwaf_run_cmd_waf, 13 UsageLine: "waf", 14 Short: "run waf itself", 15 Long: ` 16 waf runs the waf binary. 17 18 ex: 19 $ hwaf waf 20 $ hwaf waf --help 21 `, 22 Flag: *flag.NewFlagSet("hwaf-waf", flag.ExitOnError), 23 CustomFlags: true, 24 } 25 return cmd 26 } 27 28 func hwaf_run_cmd_waf(cmd *commander.Command, args []string) error { 29 var err error 30 //n := "hwaf-" + cmd.Name() 31 32 waf, err := g_ctx.WafBin() 33 if err != nil { 34 return err 35 } 36 37 if len(args) == 1 && args[0] == "build+install" { 38 sub := g_ctx.Command(waf, "build", "--notests") 39 sub.Stdin = os.Stdin 40 sub.Stdout = os.Stdout 41 sub.Stderr = os.Stderr 42 err = sub.Run() 43 if err != nil { 44 return err 45 } 46 47 sub = g_ctx.Command(waf, "install") 48 sub.Stdin = os.Stdin 49 sub.Stdout = os.Stdout 50 sub.Stderr = os.Stderr 51 err = sub.Run() 52 if err != nil { 53 return err 54 } 55 56 return err 57 } 58 subargs := append([]string{}, args...) 59 sub := g_ctx.Command(waf, subargs...) 60 sub.Stdin = os.Stdin 61 sub.Stdout = os.Stdout 62 sub.Stderr = os.Stderr 63 64 err = sub.Run() 65 66 return err 67 } 68 69 // EOF