From 0650af46f4d7768cf778ce0e1ebd64349d23841a Mon Sep 17 00:00:00 2001 From: loyalsoldier <10487845+Loyalsoldier@users.noreply.github.com> Date: Sun, 4 Oct 2020 12:39:11 +0800 Subject: [PATCH] Refine errorgen --- common/errors/errorgen/main.go | 40 +++++++++++++++++++--------------- 1 file changed, 23 insertions(+), 17 deletions(-) diff --git a/common/errors/errorgen/main.go b/common/errors/errorgen/main.go index 85dfeb614..f7bbefe47 100644 --- a/common/errors/errorgen/main.go +++ b/common/errors/errorgen/main.go @@ -5,35 +5,41 @@ import ( "log" "os" "path/filepath" + + "v2ray.com/core/common" ) -func getCurrentPkg() (string, error) { - path, err := os.Getwd() - if err != nil { - return "", err - } - return filepath.Base(path), nil -} - func main() { - pkg, err := getCurrentPkg() + pwd, err := os.Getwd() if err != nil { - log.Fatal("Failed to get current package: ", err.Error()) - return + fmt.Println("can not get current working directory") + os.Exit(1) + } + pkg := filepath.Base(pwd) + if pkg == "v2ray-core" { + pkg = "core" + } + + moduleName, gmnErr := common.GetModuleName(pwd) + if gmnErr != nil { + fmt.Println("can not get module path", gmnErr) + os.Exit(1) } file, err := os.OpenFile("errors.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644) if err != nil { log.Fatalf("Failed to generate errors.generated.go: %v", err) - return + os.Exit(1) } + defer file.Close() fmt.Fprintln(file, "package", pkg) fmt.Fprintln(file, "") - fmt.Fprintln(file, "import \"v2ray.com/core/common/errors\"") + fmt.Fprintln(file, "import \""+moduleName+"/common/errors\"") fmt.Fprintln(file, "") - fmt.Fprintln(file, "type errPathObjHolder struct {}") - fmt.Fprintln(file, "func newError(values ...interface{}) *errors.Error { return errors.New(values...).WithPathObj(errPathObjHolder{}) }") - - file.Close() + fmt.Fprintln(file, "type errPathObjHolder struct{}") + fmt.Fprintln(file, "") + fmt.Fprintln(file, "func newError(values ...interface{}) *errors.Error {") + fmt.Fprintln(file, " return errors.New(values...).WithPathObj(errPathObjHolder{})") + fmt.Fprintln(file, "}") }