Improve flag detection logic with word boundary checks
Enhanced the flag detection logic to check for word boundaries when detecting existing --kube-context and --dry-run flags. This prevents false positives if a flag contains these strings as substrings. Now checks for: - Flag at start with space after: "--kube-context " - Flag at start with equals: "--kube-context=" - Flag in middle with space before equals: " --kube-context=" Co-authored-by: yxxhero <11087727+yxxhero@users.noreply.github.com>
This commit is contained in:
parent
e11ef412f5
commit
e5ba174314
2
go.mod
2
go.mod
|
|
@ -3,6 +3,7 @@ module github.com/helmfile/helmfile
|
|||
go 1.25.4
|
||||
|
||||
require (
|
||||
al.essio.dev/pkg/shellescape v1.6.0
|
||||
dario.cat/mergo v1.0.2
|
||||
github.com/Masterminds/semver/v3 v3.4.0
|
||||
github.com/Masterminds/sprig/v3 v3.3.0
|
||||
|
|
@ -110,7 +111,6 @@ require (
|
|||
)
|
||||
|
||||
require (
|
||||
al.essio.dev/pkg/shellescape v1.6.0 // indirect
|
||||
cel.dev/expr v0.24.0 // indirect
|
||||
cloud.google.com/go/auth v0.17.0 // indirect
|
||||
cloud.google.com/go/auth/oauth2adapt v0.2.8 // indirect
|
||||
|
|
|
|||
|
|
@ -1441,18 +1441,26 @@ func (st *HelmState) processChartification(chartification *Chartify, release *Re
|
|||
chartifyOpts.TemplateArgs = fmt.Sprintf("--kube-context %s --dry-run=server", quotedContext)
|
||||
} else {
|
||||
// Only add --kube-context if not already present
|
||||
if !strings.Contains(chartifyOpts.TemplateArgs, "--kube-context") {
|
||||
// Check for the flag at word boundaries to avoid false matches
|
||||
if !strings.Contains(chartifyOpts.TemplateArgs, "--kube-context ") &&
|
||||
!strings.HasPrefix(chartifyOpts.TemplateArgs, "--kube-context=") &&
|
||||
!strings.Contains(chartifyOpts.TemplateArgs, " --kube-context=") {
|
||||
chartifyOpts.TemplateArgs = fmt.Sprintf("--kube-context %s %s", quotedContext, chartifyOpts.TemplateArgs)
|
||||
}
|
||||
// Add --dry-run if not already present
|
||||
if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run") {
|
||||
// Check for the flag at word boundaries to avoid false matches
|
||||
if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run ") &&
|
||||
!strings.HasPrefix(chartifyOpts.TemplateArgs, "--dry-run=") &&
|
||||
!strings.Contains(chartifyOpts.TemplateArgs, " --dry-run=") {
|
||||
chartifyOpts.TemplateArgs += " --dry-run=server"
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if chartifyOpts.TemplateArgs == "" {
|
||||
chartifyOpts.TemplateArgs = "--dry-run=server"
|
||||
} else if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run") {
|
||||
} else if !strings.Contains(chartifyOpts.TemplateArgs, "--dry-run ") &&
|
||||
!strings.HasPrefix(chartifyOpts.TemplateArgs, "--dry-run=") &&
|
||||
!strings.Contains(chartifyOpts.TemplateArgs, " --dry-run=") {
|
||||
chartifyOpts.TemplateArgs += " --dry-run=server"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue