github.com/kat-co/gorkin@v0.0.0-20150628020237-0eebb48d172e/main.go (about) 1 package main 2 3 import ( 4 "fmt" 5 "os/exec" 6 "strings" 7 "os" 8 "flag" 9 10 ) 11 12 const version = "0.0.1" 13 14 func main() { 15 16 var ( 17 help = flag.Bool("help", false, "Get usage on gorkin.") 18 initialize = flag.Bool("init", false, "Initialize a Gherkin structure.") 19 ) 20 21 flag.Parse() 22 23 if *help { 24 fmt.Fprintf(os.Stderr, "gorkin v%s:\n", version) 25 flag.PrintDefaults() 26 return 27 } 28 29 if *initialize { 30 if err := os.MkdirAll("./features/steps", 0700); err != nil { 31 fmt.Fprintf(os.Stderr, "error initializing structure: %v", err) 32 return 33 } 34 fmt.Println("Gherkin structure generated.") 35 return 36 } 37 38 if _, err := os.Stat("features"); os.IsNotExist(err) { 39 fmt.Printf("could not find a features directory.") 40 return 41 } 42 43 cmd := exec.Command("go", "test", "./features/steps/...") 44 out, err := cmd.CombinedOutput() 45 if err != nil { 46 fmt.Printf(`error running "%s": %s`, strings.Join(cmd.Args, " "), string(out)) 47 return 48 } 49 50 fmt.Print(string(out)) 51 }