github.com/hwaf/hwaf@v0.0.0-20140814122253-5465f73b20f1/cmd_waf_shell.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_shell() *commander.Command { 11 cmd := &commander.Command{ 12 Run: hwaf_run_cmd_waf_shell, 13 UsageLine: "shell", 14 Short: "run an interactive shell with the correct environment", 15 Long: ` 16 run an interactive shell with the correct environment. 17 18 ex: 19 $ hwaf shell 20 `, 21 Flag: *flag.NewFlagSet("hwaf-waf-shell", flag.ExitOnError), 22 CustomFlags: true, 23 } 24 return cmd 25 } 26 27 func hwaf_run_cmd_waf_shell(cmd *commander.Command, args []string) error { 28 var err error 29 //n := "hwaf-" + cmd.Name() 30 31 waf, err := g_ctx.WafBin() 32 if err != nil { 33 return err 34 } 35 36 pwd, err := os.Getwd() 37 if err != nil { 38 return err 39 } 40 41 err = os.Setenv("HWAF_WAF_SHELL_CWD", pwd) 42 if err != nil { 43 return err 44 } 45 46 subargs := append([]string{"shell"}, args...) 47 sub := g_ctx.Command(waf, subargs...) 48 sub.Stdin = os.Stdin 49 sub.Stdout = os.Stdout 50 sub.Stderr = os.Stderr 51 return sub.Run() 52 } 53 54 // EOF