Route executions through neutral snapshots

This commit is contained in:
2026-10-11 01:25:45 +00:00
parent 24e8cd8629
commit 7e5f84bf16
12 changed files with 217 additions and 191 deletions

View File

@@ -6,7 +6,7 @@ import (
"strings"
"unicode"
internalcobra "gitea.maximumdirect.net/eric/CommandKit/internal/cobra"
commandmeta "gitea.maximumdirect.net/eric/CommandKit/internal/commandmeta"
)
// Command is an opaque, reusable declaration captured by NewCommand, Group,
@@ -117,8 +117,8 @@ type CommandSpec[I any] struct {
type commandPayload interface {
validate() error
hasRun() bool
bridgeFlags() []internalcobra.Flag
bridgeArguments() []internalcobra.Argument
bridgeFlags() []commandmeta.Flag
bridgeArguments() []commandmeta.Argument
prepare([][]string, []string, bool) (func(*execution) Outcome, error)
}
@@ -135,11 +135,11 @@ func (c typedCommand[I]) hasRun() bool {
return c.spec.Run != nil || c.privateRun != nil
}
func (c typedCommand[I]) bridgeFlags() []internalcobra.Flag {
flags := make([]internalcobra.Flag, len(c.spec.Flags))
func (c typedCommand[I]) bridgeFlags() []commandmeta.Flag {
flags := make([]commandmeta.Flag, len(c.spec.Flags))
for index, flag := range c.spec.Flags {
binding := flag.binding
flags[index] = internalcobra.Flag{
flags[index] = commandmeta.Flag{
Name: binding.meta.Name,
Short: binding.meta.Short,
Usage: binding.meta.Usage,
@@ -152,11 +152,11 @@ func (c typedCommand[I]) bridgeFlags() []internalcobra.Flag {
return flags
}
func (c typedCommand[I]) bridgeArguments() []internalcobra.Argument {
arguments := make([]internalcobra.Argument, len(c.spec.Arguments))
func (c typedCommand[I]) bridgeArguments() []commandmeta.Argument {
arguments := make([]commandmeta.Argument, len(c.spec.Arguments))
for index, argument := range c.spec.Arguments {
binding := argument.binding
arguments[index] = internalcobra.Argument{
arguments[index] = commandmeta.Argument{
Name: binding.meta.Name,
Usage: binding.meta.Usage,
Min: binding.min,