wwctl <node|profile> overlay list completions
Signed-off-by: Jonathon Anderson <janderson@ciq.com>
This commit is contained in:
@@ -1,6 +1,8 @@
|
||||
package completions
|
||||
|
||||
import (
|
||||
"strings"
|
||||
|
||||
"github.com/spf13/cobra"
|
||||
|
||||
"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
|
||||
}
|
||||
|
||||
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) {
|
||||
ret, _ := overlay.OverlayGetFiles(args[0])
|
||||
return ret, cobra.ShellCompDirectiveNoFileComp
|
||||
|
||||
@@ -37,10 +37,10 @@ func GetCommand() *cobra.Command {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("profile", completions.Profiles(0)); err != nil { // no limit
|
||||
|
||||
@@ -44,10 +44,10 @@ func GetCommand() *cobra.Command {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.NodeKernelVersion); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("profile", completions.Profiles(0)); err != nil { // no limit
|
||||
|
||||
@@ -35,10 +35,10 @@ func GetCommand() *cobra.Command {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return baseCmd
|
||||
|
||||
@@ -48,10 +48,10 @@ func GetCommand() *cobra.Command {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("kernelversion", completions.ProfileKernelVersion); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("runtime", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.Overlays); err != nil {
|
||||
if err := baseCmd.RegisterFlagCompletionFunc("wwinit", completions.OverlayList); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return baseCmd
|
||||
|
||||
Reference in New Issue
Block a user