Skip to content

Commit 1ea7a4e

Browse files
committed
tmp
1 parent 994537b commit 1ea7a4e

File tree

2 files changed

+29
-4
lines changed

2 files changed

+29
-4
lines changed

completers/k3d_completer/cmd/cluster_create.go

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package cmd
22

33
import (
44
"github.com/rsteube/carapace"
5+
"github.com/rsteube/carapace-bin/pkg/actions/tools/k3d"
56
"github.com/spf13/cobra"
67
)
78

@@ -48,10 +49,17 @@ func init() {
4849
clusterCmd.AddCommand(cluster_createCmd)
4950

5051
carapace.Gen(cluster_createCmd).FlagCompletion(carapace.ActionMap{
51-
"api-port": carapace.ActionValues(), // TODO
52-
"config": carapace.ActionFiles(),
53-
"env": carapace.ActionValues(),
54-
"gpus": carapace.ActionValues(),
52+
"api-port": carapace.ActionValues(), // TODO
53+
"config": carapace.ActionFiles(),
54+
"env": carapace.ActionMultiPartsN("@", 2, func(c carapace.Context) carapace.Action {
55+
switch len(c.Parts) {
56+
case 0:
57+
return carapace.ActionValues() // KEY=VALUE
58+
default:
59+
return k3d.ActionNodeFilter().List(";")
60+
}
61+
}),
62+
"gpus": carapace.ActionValues(), // TODO
5563
"host-alias": carapace.ActionValues(),
5664
"image": carapace.ActionValues(),
5765
"k3s-arg": carapace.ActionValues(),

pkg/actions/tools/k3d/node.go

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,3 +67,20 @@ func ActionNodes(opts NodeOpts) carapace.Action {
6767
return carapace.ActionStyledValuesDescribed(vals...)
6868
})
6969
}
70+
71+
func ActionNodeGroups() carapace.Action {
72+
return carapace.ActionValues("server", "servers", "agent", "agents", "loadbalancer", "all")
73+
}
74+
75+
func ActionNodeFilter() carapace.Action { // TODO limit to specific cluster
76+
return carapace.ActionMultiPartsN(":", 3, func(c carapace.Context) carapace.Action {
77+
switch len(c.Parts) {
78+
case 0:
79+
return ActionNodeGroups()
80+
case 1:
81+
return carapace.ActionValues() // TODO subset
82+
default:
83+
return carapace.ActionValues() // TODO suffix
84+
}
85+
})
86+
}

0 commit comments

Comments
 (0)