Refine errorgen

pull/2757/head
loyalsoldier 2020-10-04 12:39:11 +08:00
parent 4130b54579
commit 0650af46f4
No known key found for this signature in database
GPG Key ID: 23829BBC1ACF2C90
1 changed files with 23 additions and 17 deletions

View File

@ -5,35 +5,41 @@ import (
"log" "log"
"os" "os"
"path/filepath" "path/filepath"
"v2ray.com/core/common"
) )
func getCurrentPkg() (string, error) { func main() {
path, err := os.Getwd() pwd, err := os.Getwd()
if err != nil { if err != nil {
return "", err fmt.Println("can not get current working directory")
os.Exit(1)
} }
return filepath.Base(path), nil pkg := filepath.Base(pwd)
if pkg == "v2ray-core" {
pkg = "core"
} }
func main() { moduleName, gmnErr := common.GetModuleName(pwd)
pkg, err := getCurrentPkg() if gmnErr != nil {
if err != nil { fmt.Println("can not get module path", gmnErr)
log.Fatal("Failed to get current package: ", err.Error()) os.Exit(1)
return
} }
file, err := os.OpenFile("errors.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644) file, err := os.OpenFile("errors.generated.go", os.O_WRONLY|os.O_TRUNC|os.O_CREATE, 0644)
if err != nil { if err != nil {
log.Fatalf("Failed to generate errors.generated.go: %v", err) 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, "package", pkg)
fmt.Fprintln(file, "") 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, "")
fmt.Fprintln(file, "type errPathObjHolder struct{}") fmt.Fprintln(file, "type errPathObjHolder struct{}")
fmt.Fprintln(file, "func newError(values ...interface{}) *errors.Error { return errors.New(values...).WithPathObj(errPathObjHolder{}) }") fmt.Fprintln(file, "")
fmt.Fprintln(file, "func newError(values ...interface{}) *errors.Error {")
file.Close() fmt.Fprintln(file, " return errors.New(values...).WithPathObj(errPathObjHolder{})")
fmt.Fprintln(file, "}")
} }