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  }