You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
go-zero/tools/goctl/bug/bug.go

52 lines
959 B
Go

package bug
import (
"fmt"
"net/url"
"os/exec"
"runtime"
"github.com/tal-tech/go-zero/tools/goctl/internal/version"
"github.com/urfave/cli"
)
const (
windows = "windows"
darwin = "darwin"
windowsOpen = "start"
darwinOpen = "open"
linuxOpen = "xdg-open"
os = "OS"
arch = "ARCH"
goctlVersion = "GOCTL_VERSION"
goVersion = "GO_VERSION"
)
var openCmd = map[string]string{
windows: windowsOpen,
darwin: darwinOpen,
}
func Action(_ *cli.Context) error {
env := getEnv()
content := fmt.Sprintf(issueTemplate, version.BuildVersion, env.string())
content = url.QueryEscape(content)
url := fmt.Sprintf("https://github.com/zeromicro/go-zero/issues/new?body=%s", content)
goos := runtime.GOOS
var cmd string
var args []string
cmd, ok := openCmd[goos]
if !ok {
cmd = linuxOpen
}
if goos == windows {
args = []string{"/c", "start"}
}
args = append(args, url)
return exec.Command(cmd, args...).Start()
}