bug.go 960 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package bug
  2. import (
  3. "fmt"
  4. "net/url"
  5. "os/exec"
  6. "runtime"
  7. "github.com/urfave/cli"
  8. "github.com/zeromicro/go-zero/tools/goctl/internal/version"
  9. )
  10. const (
  11. windows = "windows"
  12. darwin = "darwin"
  13. windowsOpen = "start"
  14. darwinOpen = "open"
  15. linuxOpen = "xdg-open"
  16. os = "OS"
  17. arch = "ARCH"
  18. goctlVersion = "GOCTL_VERSION"
  19. goVersion = "GO_VERSION"
  20. )
  21. var openCmd = map[string]string{
  22. windows: windowsOpen,
  23. darwin: darwinOpen,
  24. }
  25. func Action(_ *cli.Context) error {
  26. env := getEnv()
  27. content := fmt.Sprintf(issueTemplate, version.BuildVersion, env.string())
  28. content = url.QueryEscape(content)
  29. url := fmt.Sprintf("https://github.com/zeromicro/go-zero/issues/new?body=%s", content)
  30. goos := runtime.GOOS
  31. var cmd string
  32. var args []string
  33. cmd, ok := openCmd[goos]
  34. if !ok {
  35. cmd = linuxOpen
  36. }
  37. if goos == windows {
  38. args = []string{"/c", "start"}
  39. }
  40. args = append(args, url)
  41. return exec.Command(cmd, args...).Start()
  42. }