command: root early handler func special case
All checks were successful
Test / Create distribution (push) Successful in 27s
Test / Run NixOS test (push) Successful in 3m27s

This allows for early initialisation with access to flags on the root node. This can be useful for configuring global state used by subcommands.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
2025-02-23 00:55:18 +09:00
parent 54308f79d2
commit 312753924b
5 changed files with 55 additions and 18 deletions

View File

@@ -7,8 +7,10 @@ import (
)
// New initialises a root Node.
func New(output io.Writer, logf LogFunc, name string) Command {
return rootNode{newNode(output, logf, name, "")}
func New(output io.Writer, logf LogFunc, name string, early HandlerFunc) Command {
c := rootNode{newNode(output, logf, name, "")}
c.f = early
return c
}
func newNode(output io.Writer, logf LogFunc, name, usage string) *node {