func removeIntersectingArgs()

in pkg/cli/cli.go [124:143]


func removeIntersectingArgs(flagSet *pflag.FlagSet) []string {
	newArgs := []string{}
	skipNext := false
	for i, arg := range os.Args {
		if skipNext {
			skipNext = false
			continue
		}
		arg = strings.Split(arg, "=")[0]
		longFlag := strings.Replace(arg, "--", "", 1)
		if flagSet.Lookup(longFlag) != nil || shorthandLookup(flagSet, arg) != nil {
			if len(os.Args) > i+1 && os.Args[i+1][0] != '-' {
				skipNext = true
			}
			continue
		}
		newArgs = append(newArgs, os.Args[i])
	}
	return newArgs
}