diff --git a/main/main.go b/main/main.go index 481b998c3..50b333439 100644 --- a/main/main.go +++ b/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()