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