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  }