From fd6d15e71268332c074f47db4c99da73c096b45f Mon Sep 17 00:00:00 2001 From: Matthias Radestock Date: Thu, 20 Aug 2015 15:44:42 +0100 Subject: [PATCH] eliminate misleading flag parsing error The standard mflags error reporting produces s.t. like ``` flag provided but not defined: -p See '/home/weave/weaver --help'. ``` on stderr. This is misleading since the program name is container local, so not something the user actually invoked. Fixes #1321. --- prog/weaver/main.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/prog/weaver/main.go b/prog/weaver/main.go index 7dcaa37d..8eb98e1f 100644 --- a/prog/weaver/main.go +++ b/prog/weaver/main.go @@ -87,7 +87,15 @@ func main() { mflag.IntVar(&dnsTTL, []string{"-dns-ttl"}, nameserver.DefaultTTL, "TTL for DNS request from our domain") mflag.DurationVar(&dnsClientTimeout, []string{"-dns-fallback-timeout"}, nameserver.DefaultClientTimeout, "timeout for fallback DNS requests") + // crude way of detecting that we probably have been started in a + // container, with `weave launch` --> suppress misleading paths in + // mflags error messages. + if os.Args[0] == "/home/weave/weaver" { // matches the Dockerfile ENTRYPOINT + os.Args[0] = "weave" + mflag.CommandLine.Init("weave", mflag.ExitOnError) + } mflag.Parse() + peers = mflag.Args() SetLogLevel(logLevel)