go-mtree/test/cli-test/main.go

37 lines
747 B
Go

package main
import (
"flag"
"fmt"
"os"
"os/exec"
"github.com/fatih/color"
)
func main() {
flag.Parse()
green := color.New(color.FgGreen).SprintFunc()
red := color.New(color.FgRed).SprintFunc()
failed := 0
for _, arg := range flag.Args() {
cmd := exec.Command("bash", arg)
if os.Getenv("TMPDIR") != "" {
cmd.Env = append(cmd.Env, os.Environ()...)
cmd.Env = append(cmd.Env, "TMPDIR="+os.Getenv("TMPDIR"))
}
cmd.Stderr = os.Stderr
cmd.Stdout = os.Stdout
if err := cmd.Run(); err != nil {
failed++
fmt.Fprintf(os.Stderr, red("FAILED: %s\n"), arg)
}
}
if failed > 0 {
fmt.Fprintf(os.Stderr, red("%d FAILED tests\n"), failed)
os.Exit(1)
}
fmt.Fprint(os.Stdout, green("SUCCESS: no cli tests failed\n"))
}