46 lines
1.0 KiB
Go
Raw Permalink Normal View History

2017-12-03 01:04:57 +01:00
package main
import (
"fmt"
"log"
"os"
2018-09-30 18:39:53 +02:00
"path/filepath"
2020-10-04 12:39:11 +08:00
2021-02-17 04:31:50 +08:00
"github.com/v2fly/v2ray-core/v4/common"
2017-12-03 01:04:57 +01:00
)
2020-10-04 12:39:11 +08:00
func main() {
pwd, err := os.Getwd()
2018-09-30 18:39:53 +02:00
if err != nil {
2020-10-04 12:39:11 +08:00
fmt.Println("can not get current working directory")
os.Exit(1)
}
pkg := filepath.Base(pwd)
if pkg == "v2ray-core" {
pkg = "core"
2017-12-03 01:04:57 +01:00
}
2020-10-04 12:39:11 +08:00
moduleName, gmnErr := common.GetModuleName(pwd)
if gmnErr != nil {
fmt.Println("can not get module path", gmnErr)
os.Exit(1)
2017-12-03 01:04:57 +01:00
}
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)
2020-10-04 12:39:11 +08:00
os.Exit(1)
2017-12-03 01:04:57 +01:00
}
2020-10-04 12:39:11 +08:00
defer file.Close()
2017-12-03 01:04:57 +01:00
2018-09-30 18:39:53 +02:00
fmt.Fprintln(file, "package", pkg)
fmt.Fprintln(file, "")
2020-10-04 12:39:11 +08:00
fmt.Fprintln(file, "import \""+moduleName+"/common/errors\"")
2018-09-30 18:39:53 +02:00
fmt.Fprintln(file, "")
2020-10-04 12:39:11 +08:00
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, "}")
2017-12-03 01:04:57 +01:00
}