Env Flag Filtering (#16683)

* added filtering for global flags

Co-authored-by: Tom Proctor <tomhjp@users.noreply.github.com>
This commit is contained in:
Max Coulombe
2022-08-17 21:29:16 -04:00
committed by GitHub
parent 195e025cb2
commit 064854cb05
4 changed files with 70 additions and 22 deletions

View File

@@ -296,13 +296,26 @@ func parseFlagFile(raw string) (string, error) {
func generateFlagWarnings(args []string) string {
var trailingFlags []string
for _, arg := range args {
if strings.HasPrefix(arg, "-") {
trailingFlags = append(trailingFlags, arg)
if !strings.HasPrefix(arg, "-") {
continue
}
isGlobalFlag := false
trimmedArg, _, _ := strings.Cut(strings.TrimLeft(arg, "-"), "=")
for _, flag := range globalFlags {
if trimmedArg == flag {
isGlobalFlag = true
}
}
if isGlobalFlag {
continue
}
trailingFlags = append(trailingFlags, arg)
}
if len(trailingFlags) > 0 {
return fmt.Sprintf("Flags must be provided before positional arguments. "+
return fmt.Sprintf("Command flags must be provided before positional arguments. "+
"The following arguments will not be parsed as flags: [%s]", strings.Join(trailingFlags, ","))
} else {
return ""