From 7e988a027911290b4c8953d7d0834630b4cacbaf Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 11 Jun 2026 10:16:36 +0000 Subject: [PATCH] build(deps): bump github.com/urfave/cli/v3 from 3.9.0 to 3.9.1 Bumps [github.com/urfave/cli/v3](https://github.com/urfave/cli) from 3.9.0 to 3.9.1. - [Release notes](https://github.com/urfave/cli/releases) - [Changelog](https://github.com/urfave/cli/blob/main/docs/CHANGELOG.md) - [Commits](https://github.com/urfave/cli/compare/v3.9.0...v3.9.1) --- updated-dependencies: - dependency-name: github.com/urfave/cli/v3 dependency-version: 3.9.1 dependency-type: direct:production update-type: version-update:semver-patch ... Signed-off-by: dependabot[bot] --- go.mod | 2 +- go.sum | 4 +- .../cli/v3/autocomplete/bash_autocomplete | 4 +- .../cli/v3/autocomplete/fish_autocomplete | 8 ++- vendor/github.com/urfave/cli/v3/command.go | 19 ++++++ .../github.com/urfave/cli/v3/command_run.go | 12 ++-- .../github.com/urfave/cli/v3/command_setup.go | 27 ++++++-- vendor/github.com/urfave/cli/v3/completion.go | 64 ++++++++----------- .../urfave/cli/v3/flag_bool_with_inverse.go | 4 +- vendor/github.com/urfave/cli/v3/flag_impl.go | 4 +- .../urfave/cli/v3/godoc-current.txt | 4 +- .../urfave/cli/v3/mkdocs-requirements.txt | 2 +- vendor/modules.txt | 2 +- 13 files changed, 90 insertions(+), 66 deletions(-) diff --git a/go.mod b/go.mod index 8799af030..f635e791a 100644 --- a/go.mod +++ b/go.mod @@ -20,7 +20,7 @@ require ( github.com/opencontainers/selinux v1.15.1 github.com/seccomp/libseccomp-golang v0.11.1 github.com/sirupsen/logrus v1.9.4 - github.com/urfave/cli/v3 v3.9.0 + github.com/urfave/cli/v3 v3.9.1 github.com/vishvananda/netlink v1.3.1 github.com/vishvananda/netns v0.0.5 golang.org/x/net v0.56.0 diff --git a/go.sum b/go.sum index 781d87409..ff92c2179 100644 --- a/go.sum +++ b/go.sum @@ -60,8 +60,8 @@ github.com/sirupsen/logrus v1.9.4 h1:TsZE7l11zFCLZnZ+teH4Umoq5BhEIfIzfRDZ1Uzql2w github.com/sirupsen/logrus v1.9.4/go.mod h1:ftWc9WdOfJ0a92nsE2jF5u5ZwH8Bv2zdeOC42RjbV2g= github.com/stretchr/testify v1.11.1 h1:7s2iGBzp5EwR7/aIZr8ao5+dra3wiQyKjjFuvgVKu7U= github.com/stretchr/testify v1.11.1/go.mod h1:wZwfW3scLgRK+23gO65QZefKpKQRnfz6sD981Nm4B6U= -github.com/urfave/cli/v3 v3.9.0 h1:AV9lIiPv3ukYnxunaCUsHnEozptYmDN2F0+yWqLMn/c= -github.com/urfave/cli/v3 v3.9.0/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso= +github.com/urfave/cli/v3 v3.9.1 h1:OLU13atWZ0M+a4xmyBuBNOLZsSRYXyPeMeNjOvgYP54= +github.com/urfave/cli/v3 v3.9.1/go.mod h1:ysVLtOEmg2tOy6PknnYVhDoouyC/6N42TMeoMzskhso= github.com/vishvananda/netlink v1.3.1 h1:3AEMt62VKqz90r0tmNhog0r/PpWKmrEShJU0wJW6bV0= github.com/vishvananda/netlink v1.3.1/go.mod h1:ARtKouGSTGchR8aMwmkzC0qiNPrrWO5JS/XMVl45+b4= github.com/vishvananda/netns v0.0.5 h1:DfiHV+j8bA32MFM7bfEunvT8IAqQ/NzSJHtcmW5zdEY= diff --git a/vendor/github.com/urfave/cli/v3/autocomplete/bash_autocomplete b/vendor/github.com/urfave/cli/v3/autocomplete/bash_autocomplete index fd08201e4..42eb17b8b 100644 --- a/vendor/github.com/urfave/cli/v3/autocomplete/bash_autocomplete +++ b/vendor/github.com/urfave/cli/v3/autocomplete/bash_autocomplete @@ -66,7 +66,7 @@ __%[1]s_bash_autocomplete() { local description="" if [[ "${line}" == *:* ]]; then - token="${line%%:*}" + token="${line%%%%:*}" description="${line#*:}" fi @@ -104,4 +104,4 @@ __%[1]s_bash_autocomplete() { fi } -complete -o bashdefault -o default -o nospace -F __%[1]s_bash_autocomplete %[1]s +complete -o bashdefault -o default -F __%[1]s_bash_autocomplete %[1]s diff --git a/vendor/github.com/urfave/cli/v3/autocomplete/fish_autocomplete b/vendor/github.com/urfave/cli/v3/autocomplete/fish_autocomplete index 6714f75e0..5f2fcd7f6 100644 --- a/vendor/github.com/urfave/cli/v3/autocomplete/fish_autocomplete +++ b/vendor/github.com/urfave/cli/v3/autocomplete/fish_autocomplete @@ -6,7 +6,11 @@ function __%[1]s_perform_completion # Extract the last arg (partial input) set -l lastArg (commandline -ct) - set -l results ($args[1] $args[2..-1] $lastArg --generate-shell-completion 2> /dev/null) + if string match -q -- "-*" $lastArg + set results ($args[1] $args[2..-1] $lastArg --generate-shell-completion 2> /dev/null) + else + set results ($args[1] $args[2..-1] --generate-shell-completion 2> /dev/null) + end # Remove trailing empty lines for line in $results[-1..1] @@ -32,4 +36,4 @@ end # Clear existing completions for %[1]s complete -c %[1]s -e # Register completion function -complete -c %[1]s -f -a '(__%[1]s_perform_completion)' \ No newline at end of file +complete -c %[1]s -f -a '(__%[1]s_perform_completion)' diff --git a/vendor/github.com/urfave/cli/v3/command.go b/vendor/github.com/urfave/cli/v3/command.go index d1a9d0575..1729b8b29 100644 --- a/vendor/github.com/urfave/cli/v3/command.go +++ b/vendor/github.com/urfave/cli/v3/command.go @@ -303,6 +303,9 @@ func (cmd *Command) appendFlag(fl Flag) { // VisiblePersistentFlags returns a slice of [LocalFlag] with Persistent=true and Hidden=false. func (cmd *Command) VisiblePersistentFlags() []Flag { + if cmd.isCompletionCommand { + return nil + } var flags []Flag for _, fl := range cmd.Root().Flags { pfl, ok := fl.(LocalFlag) @@ -370,6 +373,22 @@ func (cmd *Command) lFlag(name string) Flag { return nil } +func (cmd *Command) hasPersistentFlagOnAncestor(fl Flag) bool { + for pCmd := cmd.parent; pCmd != nil; pCmd = pCmd.parent { + for _, pFl := range pCmd.allFlags() { + if pFl != fl { + continue + } + + pfl, ok := pFl.(LocalFlag) + if ok && !pfl.IsLocal() { + return true + } + } + } + return false +} + func (cmd *Command) lookupFlag(name string) Flag { for _, pCmd := range cmd.Lineage() { if f := pCmd.lFlag(name); f != nil { diff --git a/vendor/github.com/urfave/cli/v3/command_run.go b/vendor/github.com/urfave/cli/v3/command_run.go index 269dd85f2..e095ff40e 100644 --- a/vendor/github.com/urfave/cli/v3/command_run.go +++ b/vendor/github.com/urfave/cli/v3/command_run.go @@ -141,13 +141,10 @@ func (cmd *Command) run(ctx context.Context, osArgs []string) (_ context.Context var rargs Args = &stringSliceArgs{v: osArgs} var args Args = &stringSliceArgs{rargs.Tail()} - if cmd.isCompletionCommand { - tracef("completion command detected, skipping pre-parse (cmd=%[1]q)", cmd.Name) - cmd.parsedArgs = args - return ctx, cmd.Action(ctx, cmd) - } - for _, f := range cmd.allFlags() { + if cmd.hasPersistentFlagOnAncestor(f) { + continue + } if err := f.PreParse(); err != nil { return ctx, err } @@ -268,13 +265,12 @@ func (cmd *Command) run(ctx context.Context, osArgs []string) (_ context.Context subCmd = cmd.Command(name) if subCmd == nil { hasDefault := cmd.DefaultCommand != "" - isFlagName := slices.Contains(cmd.FlagNames(), name) if hasDefault { tracef("using default command=%[1]q (cmd=%[2]q)", cmd.DefaultCommand, cmd.Name) } - if isFlagName || hasDefault { + if hasDefault { argsWithDefault := cmd.argsWithDefaultCommand(cmd.parsedArgs) tracef("using default command args=%[1]q (cmd=%[2]q)", argsWithDefault, cmd.Name) subCmd = cmd.Command(argsWithDefault.First()) diff --git a/vendor/github.com/urfave/cli/v3/command_setup.go b/vendor/github.com/urfave/cli/v3/command_setup.go index cac4a3031..fca499ccc 100644 --- a/vendor/github.com/urfave/cli/v3/command_setup.go +++ b/vendor/github.com/urfave/cli/v3/command_setup.go @@ -46,18 +46,33 @@ func (cmd *Command) setupDefaults(osArgs []string) { } if cmd.Reader == nil { - tracef("setting default Reader as os.Stdin (cmd=%[1]q)", cmd.Name) - cmd.Reader = os.Stdin + if cmd.parent != nil && cmd.parent.Reader != nil { + tracef("inheriting Reader from parent (cmd=%[1]q)", cmd.Name) + cmd.Reader = cmd.parent.Reader + } else { + tracef("setting default Reader as os.Stdin (cmd=%[1]q)", cmd.Name) + cmd.Reader = os.Stdin + } } if cmd.Writer == nil { - tracef("setting default Writer as os.Stdout (cmd=%[1]q)", cmd.Name) - cmd.Writer = os.Stdout + if cmd.parent != nil && cmd.parent.Writer != nil { + tracef("inheriting Writer from parent (cmd=%[1]q)", cmd.Name) + cmd.Writer = cmd.parent.Writer + } else { + tracef("setting default Writer as os.Stdout (cmd=%[1]q)", cmd.Name) + cmd.Writer = os.Stdout + } } if cmd.ErrWriter == nil { - tracef("setting default ErrWriter as os.Stderr (cmd=%[1]q)", cmd.Name) - cmd.ErrWriter = os.Stderr + if cmd.parent != nil && cmd.parent.ErrWriter != nil { + tracef("inheriting ErrWriter from parent (cmd=%[1]q)", cmd.Name) + cmd.ErrWriter = cmd.parent.ErrWriter + } else { + tracef("setting default ErrWriter as os.Stderr (cmd=%[1]q)", cmd.Name) + cmd.ErrWriter = os.Stderr + } } if cmd.AllowExtFlags { diff --git a/vendor/github.com/urfave/cli/v3/completion.go b/vendor/github.com/urfave/cli/v3/completion.go index de11edb40..167b0c012 100644 --- a/vendor/github.com/urfave/cli/v3/completion.go +++ b/vendor/github.com/urfave/cli/v3/completion.go @@ -4,7 +4,6 @@ import ( "context" "embed" "fmt" - "sort" "strings" ) @@ -58,45 +57,36 @@ Output the script to path/to/autocomplete/$COMMAND.ps1 an run it. ` func buildCompletionCommand(appName string) *Command { - return &Command{ - Name: completionCommandName, - Hidden: true, - Usage: "Output shell completion script for bash, zsh, fish, or Powershell", - Description: strings.ReplaceAll(completionDescription, "$COMMAND", appName), - Action: func(ctx context.Context, cmd *Command) error { - return printShellCompletion(ctx, cmd, appName) - }, + cmd := &Command{ + Name: completionCommandName, + Hidden: true, + Usage: "Output shell completion script for bash, zsh, fish, or Powershell", + Description: strings.ReplaceAll(completionDescription, "$COMMAND", appName), isCompletionCommand: true, } + + for shell, render := range shellCompletions { + cmd.Commands = append(cmd.Commands, buildShellCompletionSubcommand(shell, render, appName)) + } + + return cmd } -func printShellCompletion(_ context.Context, cmd *Command, appName string) error { - var shells []string - for k := range shellCompletions { - shells = append(shells, k) +func buildShellCompletionSubcommand(shell string, render renderCompletion, appName string) *Command { + return &Command{ + Name: shell, + Usage: fmt.Sprintf("Output %s completion script", shell), + isCompletionCommand: true, + Action: func(ctx context.Context, cmd *Command) error { + completionScript, err := render(cmd, appName) + if err != nil { + return Exit(err, 1) + } + _, err = cmd.Root().Writer.Write([]byte(completionScript)) + if err != nil { + return Exit(err, 1) + } + return nil + }, } - - sort.Strings(shells) - - if cmd.Args().Len() == 0 { - return Exit(fmt.Sprintf("no shell provided for completion command. available shells are %+v", shells), 1) - } - s := cmd.Args().First() - - renderCompletion, ok := shellCompletions[s] - if !ok { - return Exit(fmt.Sprintf("unknown shell %s, available shells are %+v", s, shells), 1) - } - - completionScript, err := renderCompletion(cmd, appName) - if err != nil { - return Exit(err, 1) - } - - _, err = cmd.Writer.Write([]byte(completionScript)) - if err != nil { - return Exit(err, 1) - } - - return nil } diff --git a/vendor/github.com/urfave/cli/v3/flag_bool_with_inverse.go b/vendor/github.com/urfave/cli/v3/flag_bool_with_inverse.go index 8666e2d3d..bc12c25a2 100644 --- a/vendor/github.com/urfave/cli/v3/flag_bool_with_inverse.go +++ b/vendor/github.com/urfave/cli/v3/flag_bool_with_inverse.go @@ -116,7 +116,7 @@ func (bif *BoolWithInverseFlag) PostParse() error { func (bif *BoolWithInverseFlag) Set(name, val string) error { if bif.count > 0 && bif.OnlyOnce { - return fmt.Errorf("cant duplicate this flag") + return fmt.Errorf("can't duplicate this flag") } bif.hasBeenSet = true @@ -207,7 +207,7 @@ func (bif *BoolWithInverseFlag) String() string { return fmt.Sprintf("%s%s", names, out[i:]) } -// IsBoolFlag returns whether the flag doesnt need to accept args +// IsBoolFlag returns whether the flag doesn't need to accept args func (bif *BoolWithInverseFlag) IsBoolFlag() bool { return true } diff --git a/vendor/github.com/urfave/cli/v3/flag_impl.go b/vendor/github.com/urfave/cli/v3/flag_impl.go index 1ca295aaf..ab97da873 100644 --- a/vendor/github.com/urfave/cli/v3/flag_impl.go +++ b/vendor/github.com/urfave/cli/v3/flag_impl.go @@ -193,7 +193,7 @@ func (f *FlagBase[T, C, V]) Set(_ string, val string) error { } if f.count == 1 && f.OnlyOnce { - return fmt.Errorf("cant duplicate this flag") + return fmt.Errorf("can't duplicate this flag") } f.count++ @@ -301,7 +301,7 @@ func (f *FlagBase[T, C, VC]) IsLocal() bool { return f.Local } -// IsBoolFlag returns whether the flag doesnt need to accept args +// IsBoolFlag returns whether the flag doesn't need to accept args func (f *FlagBase[T, C, VC]) IsBoolFlag() bool { bf, ok := f.value.(boolFlag) return ok && bf.IsBoolFlag() diff --git a/vendor/github.com/urfave/cli/v3/godoc-current.txt b/vendor/github.com/urfave/cli/v3/godoc-current.txt index 1e163a0cb..681df19d6 100644 --- a/vendor/github.com/urfave/cli/v3/godoc-current.txt +++ b/vendor/github.com/urfave/cli/v3/godoc-current.txt @@ -384,7 +384,7 @@ func (bif *BoolWithInverseFlag) GetValue() string string if the flag takes no value at all. func (bif *BoolWithInverseFlag) IsBoolFlag() bool - IsBoolFlag returns whether the flag doesnt need to accept args + IsBoolFlag returns whether the flag doesn't need to accept args func (bif *BoolWithInverseFlag) IsDefaultVisible() bool IsDefaultVisible returns true if the flag is not hidden, otherwise false @@ -1000,7 +1000,7 @@ func (f *FlagBase[T, C, V]) GetValue() string string if the flag takes no value at all. func (f *FlagBase[T, C, VC]) IsBoolFlag() bool - IsBoolFlag returns whether the flag doesnt need to accept args + IsBoolFlag returns whether the flag doesn't need to accept args func (f *FlagBase[T, C, V]) IsDefaultVisible() bool IsDefaultVisible returns true if the flag is not hidden, otherwise false diff --git a/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt b/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt index d7f1b2c69..701403ae5 100644 --- a/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt +++ b/vendor/github.com/urfave/cli/v3/mkdocs-requirements.txt @@ -1,4 +1,4 @@ -mkdocs-git-revision-date-localized-plugin==1.5.1 +mkdocs-git-revision-date-localized-plugin==1.5.3 mkdocs-material==9.7.6 mkdocs==1.6.1 mkdocs-redirects==1.2.3 diff --git a/vendor/modules.txt b/vendor/modules.txt index 9d43cdef5..8443ad2fd 100644 --- a/vendor/modules.txt +++ b/vendor/modules.txt @@ -94,7 +94,7 @@ github.com/seccomp/libseccomp-golang ## explicit; go 1.17 github.com/sirupsen/logrus github.com/sirupsen/logrus/hooks/test -# github.com/urfave/cli/v3 v3.9.0 +# github.com/urfave/cli/v3 v3.9.1 ## explicit; go 1.22 github.com/urfave/cli/v3 # github.com/vishvananda/netlink v1.3.1