|
|
@@ -1,6 +1,7 @@
|
|
|
package main
|
|
|
|
|
|
import (
|
|
|
+ "flag"
|
|
|
"fmt"
|
|
|
"go/build"
|
|
|
"io/ioutil"
|
|
|
@@ -11,6 +12,8 @@ import (
|
|
|
"strings"
|
|
|
)
|
|
|
|
|
|
+var directory = flag.String("pwd", "", "Working directory of Xray vformat.")
|
|
|
+
|
|
|
// envFile returns the name of the Go environment configuration file.
|
|
|
// Copy from https://github.com/golang/go/blob/c4f2a9788a7be04daf931ac54382fbe2cb754938/src/cmd/go/internal/cfg/cfg.go#L150-L166
|
|
|
func envFile() (string, error) {
|
|
|
@@ -106,12 +109,22 @@ func RunMany(binary string, args, files []string) {
|
|
|
}
|
|
|
|
|
|
func main() {
|
|
|
- pwd, err := os.Getwd()
|
|
|
- if err != nil {
|
|
|
- fmt.Println("Can not get current working directory.")
|
|
|
- os.Exit(1)
|
|
|
+ flag.Usage = func() {
|
|
|
+ fmt.Fprintf(flag.CommandLine.Output(), "Usage of vformat:\n")
|
|
|
+ flag.PrintDefaults()
|
|
|
+ }
|
|
|
+ flag.Parse()
|
|
|
+
|
|
|
+ if !filepath.IsAbs(*directory) {
|
|
|
+ pwd, wdErr := os.Getwd()
|
|
|
+ if wdErr != nil {
|
|
|
+ fmt.Println("Can not get current working directory.")
|
|
|
+ os.Exit(1)
|
|
|
+ }
|
|
|
+ *directory = filepath.Join(pwd, *directory)
|
|
|
}
|
|
|
|
|
|
+ pwd := *directory
|
|
|
GOBIN := GetGOBIN()
|
|
|
binPath := os.Getenv("PATH")
|
|
|
pathSlice := []string{pwd, GOBIN, binPath}
|
|
|
@@ -140,7 +153,7 @@ func main() {
|
|
|
}
|
|
|
|
|
|
rawFilesSlice := make([]string, 0)
|
|
|
- walkErr := filepath.Walk("./", func(path string, info os.FileInfo, err error) error {
|
|
|
+ walkErr := filepath.Walk(pwd, func(path string, info os.FileInfo, err error) error {
|
|
|
if err != nil {
|
|
|
fmt.Println(err)
|
|
|
return err
|