Browse Source

Fix Test Parse flag before flag defined by V2 in main

Shelikhoo 5 years ago
parent
commit
e61b44ff78
1 changed files with 13 additions and 3 deletions
  1. 13 3
      main/main.go

+ 13 - 3
main/main.go

@@ -27,6 +27,18 @@ var (
 	version     = flag.Bool("version", false, "Show current version of V2Ray.")
 	test        = flag.Bool("test", false, "Test config file only, without launching V2Ray server.")
 	format      = flag.String("format", "json", "Format of input file.")
+
+	/*  We have to do this here because Golang's Test will also need to parse flag, before
+		main func in this file is run.
+	*/
+	_ = func() error {
+
+		flag.Var(&configFiles, "config", "Config file for V2Ray. Multiple assign is accepted (only json). Latter ones overrides the former ones.")
+		flag.Var(&configFiles, "c", "Short alias of -config")
+		flag.StringVar(&configDir, "confdir", "", "A dir with multiple json config")
+
+		return nil
+	}()
 )
 
 func fileExists(file string) bool {
@@ -120,9 +132,7 @@ func printVersion() {
 }
 
 func main() {
-	flag.Var(&configFiles, "config", "Config file for V2Ray. Multiple assign is accepted (only json). Latter ones overrides the former ones.")
-	flag.Var(&configFiles, "c", "Short alias of -config")
-	flag.StringVar(&configDir, "confdir", "", "A dir with multiple json config")
+
 	flag.Parse()
 
 	printVersion()