github.com/hwaf/hwaf@v0.0.0-20140814122253-5465f73b20f1/cmd_waf_show_flags.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  
     6  	"github.com/gonuts/commander"
     7  	"github.com/gonuts/flag"
     8  )
     9  
    10  func hwaf_make_cmd_waf_show_flags() *commander.Command {
    11  	cmd := &commander.Command{
    12  		Run:       hwaf_run_cmd_waf_show_flags,
    13  		UsageLine: "flags [options] [<flag-name> [<flag-name> [...]]]",
    14  		Short:     "show local project's 'flags-name' value",
    15  		Long: `
    16  show flags displays the value of some flags.
    17  
    18  ex:
    19   $ hwaf show flags CXXFLAGS
    20   ['-O2', '-fPIC', '-pipe', '-ansi', '-Wall', '-W', '-pthread', '-m64', '-Wno-deprecated']
    21  
    22   $ hwaf show flags
    23  `,
    24  		Flag: *flag.NewFlagSet("hwaf-waf-show-flags", flag.ExitOnError),
    25  	}
    26  	return cmd
    27  }
    28  
    29  func hwaf_run_cmd_waf_show_flags(cmd *commander.Command, args []string) error {
    30  	var err error
    31  
    32  	pinfos, err := g_ctx.ProjectInfos()
    33  	if err != nil {
    34  		return err
    35  	}
    36  
    37  	switch len(args) {
    38  	case 0:
    39  		args = pinfos.Keys()
    40  	}
    41  
    42  	err_stack := []error{}
    43  	for _, k := range args {
    44  		val, err2 := pinfos.Get(k)
    45  		if err2 != nil {
    46  			err_stack = append(err_stack, err2)
    47  			err = err2
    48  			continue
    49  		}
    50  
    51  		fmt.Printf("%s=%s\n", k, val)
    52  	}
    53  
    54  	if len(err_stack) != 0 {
    55  		for _, err := range err_stack {
    56  			fmt.Printf("**error: %v\n", err)
    57  		}
    58  		// TODO(sbinet) define and use an ErrorStack
    59  		return err_stack[0]
    60  	}
    61  
    62  	return nil
    63  }
    64  
    65  // EOF