mirror of https://github.com/v2ray/v2ray-core
Merge pull request #260 from Loyalsoldier/refine-errorgen
Errorgen: support to run outside of GOPATHpull/2757/head
commit
9a452bc1a1
|
@ -2,7 +2,7 @@
|
|||
|
||||
package commander
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package dispatcher
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,4 +2,4 @@
|
|||
|
||||
package dispatcher
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Package dns is an implementation of core.DNS feature.
|
||||
package dns
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package dns
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package command
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package log
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Package policy is an implementation of policy.Manager feature.
|
||||
package policy
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package command
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package inbound
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package outbound
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package reverse
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package command
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package router
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package command
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package stats
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Package buf provides a light-weight memory allocation mechanism.
|
||||
package buf // import "v2ray.com/core/common/buf"
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -13,7 +13,7 @@ import (
|
|||
"v2ray.com/core/common/errors"
|
||||
)
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
var (
|
||||
// ErrNoClue is for the situation that existing information is not enough to make a decision. For example, Router may return this error when there is no suitable route.
|
||||
|
@ -126,25 +126,33 @@ func GetGOPATH() string {
|
|||
|
||||
// GetModuleName returns the value of module in `go.mod` file.
|
||||
func GetModuleName(pathToProjectRoot string) (string, error) {
|
||||
gomodPath := filepath.Join(pathToProjectRoot, "go.mod")
|
||||
gomodBytes, err := ioutil.ReadFile(gomodPath)
|
||||
if err != nil {
|
||||
return "", err
|
||||
}
|
||||
gomodContent := string(gomodBytes)
|
||||
moduleIdx := strings.Index(gomodContent, "module ")
|
||||
newLineIdx := strings.Index(gomodContent, "\n")
|
||||
|
||||
var moduleName string
|
||||
if moduleIdx >= 0 {
|
||||
if newLineIdx >= 0 {
|
||||
moduleName = strings.TrimSpace(gomodContent[moduleIdx+6 : newLineIdx])
|
||||
moduleName = strings.TrimSuffix(moduleName, "\r")
|
||||
} else {
|
||||
moduleName = strings.TrimSpace(gomodContent[moduleIdx+6:])
|
||||
loopPath := pathToProjectRoot
|
||||
for {
|
||||
if idx := strings.LastIndex(loopPath, string(filepath.Separator)); idx >= 0 {
|
||||
gomodPath := filepath.Join(loopPath, "go.mod")
|
||||
gomodBytes, err := ioutil.ReadFile(gomodPath)
|
||||
if err != nil {
|
||||
loopPath = loopPath[:idx]
|
||||
continue
|
||||
}
|
||||
|
||||
gomodContent := string(gomodBytes)
|
||||
moduleIdx := strings.Index(gomodContent, "module ")
|
||||
newLineIdx := strings.Index(gomodContent, "\n")
|
||||
|
||||
if moduleIdx >= 0 {
|
||||
if newLineIdx >= 0 {
|
||||
moduleName = strings.TrimSpace(gomodContent[moduleIdx+6 : newLineIdx])
|
||||
moduleName = strings.TrimSuffix(moduleName, "\r")
|
||||
} else {
|
||||
moduleName = strings.TrimSpace(gomodContent[moduleIdx+6:])
|
||||
}
|
||||
return moduleName, nil
|
||||
}
|
||||
return "", fmt.Errorf("can not get module path in `%s`", gomodPath)
|
||||
}
|
||||
} else {
|
||||
return "", fmt.Errorf("can not get module path in `%s`", gomodPath)
|
||||
break
|
||||
}
|
||||
return moduleName, nil
|
||||
return moduleName, fmt.Errorf("no `go.mod` file in every parent directory of `%s`", pathToProjectRoot)
|
||||
}
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Package crypto provides common crypto libraries for V2Ray.
|
||||
package crypto // import "v2ray.com/core/common/crypto"
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -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, "}")
|
||||
}
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package mux
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Package net is a drop-in replacement to Golang's net package, with some more functionalities.
|
||||
package net // import "v2ray.com/core/common/net"
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -10,7 +10,7 @@ import (
|
|||
"v2ray.com/core/common/platform"
|
||||
)
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
func Run(args []string, input io.Reader) (buf.MultiBuffer, error) {
|
||||
v2ctl := platform.GetToolLocation("v2ctl")
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package protocol // import "v2ray.com/core/common/protocol"
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -15,7 +15,7 @@ import (
|
|||
"v2ray.com/core/common"
|
||||
)
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
type Certificate struct {
|
||||
// Cerificate in ASN.1 DER format
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package retry // import "v2ray.com/core/common/retry"
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"time"
|
||||
|
|
3
core.go
3
core.go
|
@ -9,8 +9,7 @@
|
|||
// connections.
|
||||
package core
|
||||
|
||||
//go:generate go install "v2ray.com/core/common/errors/errorgen"
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"runtime"
|
||||
|
|
|
@ -2,7 +2,7 @@ package features
|
|||
|
||||
import "v2ray.com/core/common"
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
// Feature is the interface for V2Ray features. All features must implement this interface.
|
||||
// All existing features have an implementation in app directory. These features can be replaced by third-party ones.
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package dns
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"v2ray.com/core/common/net"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package stats
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package command
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"os"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package conf
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package serial
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package control
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package external
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package json
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package main
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"flag"
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
|
||||
package blackhole
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package dokodemo
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package freedom
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package http
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package mtproto
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
// R.I.P Shadowsocks
|
||||
package shadowsocks
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
// Package socks provides implements of Socks protocol 4, 4a and 5.
|
||||
package socks
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package encoding
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"io"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package inbound
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package outbound
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
// clients with 'socks' for proxying.
|
||||
package vless
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
const (
|
||||
XRO = "xtls-rprx-origin"
|
||||
|
|
|
@ -5,7 +5,7 @@ import (
|
|||
"v2ray.com/core/common/protocol"
|
||||
)
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
const (
|
||||
Version = byte(1)
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package inbound
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
package outbound
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"context"
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
// clients with 'socks' for proxying.
|
||||
package vmess
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package domainsocket
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
package http
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
import (
|
||||
"bufio"
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package http
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package internet
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -5,4 +5,4 @@
|
|||
// xtaci@github for translating to Golang
|
||||
package kcp
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -7,7 +7,7 @@ import (
|
|||
"v2ray.com/core/transport/internet"
|
||||
)
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
// Here is some modification needs to be done before update quic vendor.
|
||||
// * use bytespool in buffer_pool.go
|
||||
|
|
|
@ -1,3 +1,3 @@
|
|||
package tcp
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
"v2ray.com/core/common/net"
|
||||
)
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
var (
|
||||
_ buf.Writer = (*Conn)(nil)
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
package udp
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
const protocolName = "udp"
|
||||
|
|
|
@ -4,4 +4,4 @@ Websocket transport implements an HTTP(S) compliable, surveillance proof transpo
|
|||
*/
|
||||
package websocket
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
|
|
@ -9,7 +9,7 @@ import (
|
|||
"v2ray.com/core/common/net"
|
||||
)
|
||||
|
||||
//go:generate errorgen
|
||||
//go:generate go run v2ray.com/core/common/errors/errorgen
|
||||
|
||||
var (
|
||||
_ buf.Writer = (*Conn)(nil)
|
||||
|
|
Loading…
Reference in New Issue