From 6f1f836a220705564a00f32aeca02f580bd4173c Mon Sep 17 00:00:00 2001 From: Shelikhoo Date: Mon, 23 Mar 2020 11:34:53 +0800 Subject: [PATCH] Fix Test Parse flag before flag defined by V2 in main --- main/main.go | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/main/main.go b/main/main.go index c633a288..fe13c3d1 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 { @@ -122,9 +134,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()