wwctl <node|profile> overlay list completions

Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
Jonathon Anderson
2025-02-09 15:14:30 -07:00
parent 3fbc2fc75c
commit 760b6e5217
5 changed files with 21 additions and 8 deletions

View File

@@ -1,6 +1,8 @@
package completions package completions
import ( import (
"strings"
"github.com/spf13/cobra" "github.com/spf13/cobra"
"github.com/warewulf/warewulf/internal/pkg/hostlist" "github.com/warewulf/warewulf/internal/pkg/hostlist"
@@ -87,6 +89,17 @@ func Overlays(cmd *cobra.Command, args []string, toComplete string) ([]string, c
return list, cobra.ShellCompDirectiveNoFileComp return list, cobra.ShellCompDirectiveNoFileComp
} }
func OverlayList(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
list, directive := Overlays(cmd, args, toComplete)
lastCommaIndex := strings.LastIndex(toComplete, ",")
if lastCommaIndex >= 0 {
for i := range list {
list[i] = toComplete[:lastCommaIndex+1] + list[i]
}
}
return list, directive
}
func OverlayFiles(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) { func OverlayFiles(cmd *cobra.Command, args []string, toComplete string) ([]string, cobra.ShellCompDirective) {
ret, _ := overlay.OverlayGetFiles(args[0]) ret, _ := overlay.OverlayGetFiles(args[0])
return ret, cobra.ShellCompDirectiveNoFileComp return ret, cobra.ShellCompDirectiveNoFileComp

View File

@@ -37,10 +37,10 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("profile", completions.Profiles(0)); err != nil { // no limit if err := baseCmd.RegisterFlagCompletionFunc("profile", completions.Profiles(0)); err != nil { // no limit

View File

@@ -44,10 +44,10 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("profile", completions.Profiles(0)); err != nil { // no limit if err := baseCmd.RegisterFlagCompletionFunc("profile", completions.Profiles(0)); err != nil { // no limit

View File

@@ -35,10 +35,10 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
return baseCmd return baseCmd

View File

@@ -48,10 +48,10 @@ func GetCommand() *cobra.Command {
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil { if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
panic(err) panic(err)
} }
return baseCmd return baseCmd