Add scoped PromptKit flag aliases
This commit is contained in:
@@ -17,23 +17,23 @@ type namespaceInput struct {
|
||||
prompt, profile, backend commandkit.Supplied[string]
|
||||
}
|
||||
|
||||
func namespaceFlags[I any](destination func(*I) *namespaceInput, kinds ...string) []commandkit.Flag[I] {
|
||||
flags := make([]commandkit.Flag[I], 0, len(kinds))
|
||||
func namespaceFlags[I any](destination func(*I) *namespaceInput, kinds ...string) []requestBinding[I] {
|
||||
flags := make([]requestBinding[I], 0, len(kinds))
|
||||
for _, kind := range kinds {
|
||||
var meta commandkit.FlagMeta
|
||||
var definition requestFlagDefinition
|
||||
var field func(*namespaceInput) *commandkit.Supplied[string]
|
||||
switch kind {
|
||||
case "prompt":
|
||||
meta = namespaceFlagDefinitions.prompt.meta
|
||||
definition = namespaceFlagDefinitions.prompt
|
||||
field = func(input *namespaceInput) *commandkit.Supplied[string] { return &input.prompt }
|
||||
case "profile":
|
||||
meta = namespaceFlagDefinitions.profile.meta
|
||||
definition = namespaceFlagDefinitions.profile
|
||||
field = func(input *namespaceInput) *commandkit.Supplied[string] { return &input.profile }
|
||||
case "backend":
|
||||
meta = namespaceFlagDefinitions.backend.meta
|
||||
definition = namespaceFlagDefinitions.backend
|
||||
field = func(input *namespaceInput) *commandkit.Supplied[string] { return &input.backend }
|
||||
}
|
||||
flags = append(flags, commandkit.ValueFlag(meta, (*string)(nil), parseDefinitionString, func(input *I, value commandkit.Supplied[string]) { *field(destination(input)) = value }))
|
||||
flags = append(flags, requestBinding[I]{commandkit.ValueFlag(definition.meta, (*string)(nil), parseDefinitionString, func(input *I, value commandkit.Supplied[string]) { *field(destination(input)) = value }), definition})
|
||||
}
|
||||
return flags
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user