Files
commandkit/integrations/ckprompt/declarations.go

32 lines
1.2 KiB
Go

package ckprompt
import commandkit "go.maximumdirect.net/commandkit"
type requestBinding[I any] struct {
flag commandkit.Flag[I]
definition requestFlagDefinition
}
// appendRequestBindings installs the selected handles and, when requested,
// records their convenience aliases for the exact owning command.
func appendRequestBindings[I any](flags []commandkit.Flag[I], path string, aliases *[]commandkit.Declaration, bindings ...requestBinding[I]) []commandkit.Flag[I] {
for _, binding := range bindings {
flags = append(flags, binding.flag)
if aliases != nil {
for _, name := range binding.definition.aliases {
*aliases = append(*aliases, commandkit.FlagAliasFor(path, "--"+name, "--"+binding.definition.meta.Name))
}
}
}
return flags
}
// Declarations returns the canonical PromptKit command family and scoped
// convenience aliases for the operations and flags enabled by suite. Command
// remains available for installations that want only canonical spellings.
func Declarations[I, S any](suite Suite[I, S]) []commandkit.Declaration {
var aliases []commandkit.Declaration
command := buildCommand(suite, &aliases)
return append([]commandkit.Declaration{command}, aliases...)
}