62 lines
1.3 KiB
Go
62 lines
1.3 KiB
Go
package main
|
|
|
|
import (
|
|
"flag"
|
|
"fmt"
|
|
"io/ioutil"
|
|
"os/exec"
|
|
"strings"
|
|
)
|
|
|
|
func BuildUnfocusCommand() *Command {
|
|
return &Command{
|
|
Name: "unfocus",
|
|
AltName: "blur",
|
|
FlagSet: flag.NewFlagSet("unfocus", flag.ExitOnError),
|
|
UsageCommand: "ginkgo unfocus (or ginkgo blur)",
|
|
Usage: []string{
|
|
"Recursively unfocuses any focused tests under the current directory",
|
|
},
|
|
Command: unfocusSpecs,
|
|
}
|
|
}
|
|
|
|
func unfocusSpecs([]string, []string) {
|
|
unfocus("Describe")
|
|
unfocus("Context")
|
|
unfocus("It")
|
|
unfocus("Measure")
|
|
unfocus("DescribeTable")
|
|
unfocus("Entry")
|
|
unfocus("Specify")
|
|
unfocus("When")
|
|
}
|
|
|
|
func unfocus(component string) {
|
|
fmt.Printf("Removing F%s...\n", component)
|
|
files, err := ioutil.ReadDir(".")
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
return
|
|
}
|
|
for _, f := range files {
|
|
// Exclude "vendor" directory
|
|
if f.IsDir() && f.Name() == "vendor" {
|
|
continue
|
|
}
|
|
// Exclude non-go files in the current directory
|
|
if !f.IsDir() && !strings.HasSuffix(f.Name(), ".go") {
|
|
continue
|
|
}
|
|
// Recursively run `gofmt` otherwise
|
|
cmd := exec.Command("gofmt", fmt.Sprintf("-r=F%s -> %s", component, component), "-w", f.Name())
|
|
out, err := cmd.CombinedOutput()
|
|
if err != nil {
|
|
fmt.Println(err.Error())
|
|
}
|
|
if string(out) != "" {
|
|
fmt.Println(string(out))
|
|
}
|
|
}
|
|
}
|