main.go 671 B

123456789101112131415161718192021222324252627282930313233343536373839
  1. package main
  2. import (
  3. "flag"
  4. "fmt"
  5. "io"
  6. "os"
  7. "os/exec"
  8. )
  9. func run(proj string, out io.Writer) error {
  10. if proj == "" {
  11. return fmt.Errorf("project directory is required: %w", ErrValidation)
  12. }
  13. args := []string{"build", ".", "errors"}
  14. cmd := exec.Command("go", args...)
  15. cmd.Dir = proj
  16. if err := cmd.Run(); err != nil {
  17. return &stepErr{
  18. step: "go build",
  19. msg: "go build failed",
  20. cause: err,
  21. }
  22. }
  23. _, err := fmt.Fprintln(out, "Go Build: SUCCESS")
  24. return err
  25. }
  26. func main() {
  27. proj := flag.String("p", "", "Project directory")
  28. flag.Parse()
  29. if err := run(*proj, os.Stdout); err != nil {
  30. _, _ = fmt.Fprintln(os.Stderr, err)
  31. os.Exit(1)
  32. }
  33. }