run.go 968 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. package quickstart
  2. import (
  3. "os"
  4. "os/exec"
  5. "runtime"
  6. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/util/env"
  7. "github.com/wuntsong-org/go-zero-plus/tools/goctlwt/vars"
  8. )
  9. const goproxy = "GOPROXY=https://goproxy.cn,direct"
  10. func goStart(dir string) {
  11. execCommand(dir, "go run .", prepareGoProxyEnv()...)
  12. }
  13. func goModTidy(dir string) int {
  14. log.Debug(">> go mod tidy")
  15. return execCommand(dir, "go mod tidy", prepareGoProxyEnv()...)
  16. }
  17. func execCommand(dir, arg string, envArgs ...string) int {
  18. cmd := exec.Command("sh", "-c", arg)
  19. if runtime.GOOS == vars.OsWindows {
  20. cmd = exec.Command("cmd.exe", "/c", arg)
  21. }
  22. env := append([]string(nil), os.Environ()...)
  23. env = append(env, envArgs...)
  24. cmd.Env = env
  25. cmd.Dir = dir
  26. cmd.Stdout = os.Stdout
  27. cmd.Stderr = os.Stderr
  28. _ = cmd.Run()
  29. return cmd.ProcessState.ExitCode()
  30. }
  31. func prepareGoProxyEnv(envArgs ...string) []string {
  32. if env.InChina() {
  33. return append(envArgs, goproxy)
  34. }
  35. return envArgs
  36. }