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
|
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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Reference in New Issue
Block a user