github.com/pf-qiu/concourse/v6@v6.7.3-0.20201207032516-1f455d73275f/fly/commands/internal/flaghelpers/completion.go (about) 1 package flaghelpers 2 3 import ( 4 "os" 5 6 "github.com/jessevdk/go-flags" 7 8 "github.com/pf-qiu/concourse/v6/fly/rc" 9 ) 10 11 type flyCommand struct { 12 Target rc.TargetName `short:"t" long:"target" description:"Concourse target name"` 13 } 14 15 func parseFlags() flyCommand { 16 // Prevent go-flags from recursing 17 goFlagsCompletion, hasCompletion := os.LookupEnv("GO_FLAGS_COMPLETION") 18 os.Unsetenv("GO_FLAGS_COMPLETION") 19 defer func() { 20 if hasCompletion { 21 os.Setenv("GO_FLAGS_COMPLETION", goFlagsCompletion) 22 } 23 }() 24 25 var fly flyCommand 26 parser := flags.NewParser(&fly, flags.HelpFlag|flags.PassDoubleDash|flags.IgnoreUnknown) 27 parser.NamespaceDelimiter = "-" 28 parser.Parse() 29 30 return fly 31 }