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