command: hide internal commands
All checks were successful
Test / Create distribution (push) Successful in 25s
Test / Run NixOS test (push) Successful in 3m26s

This marks commands as internal via a magic usage string.

Signed-off-by: Ophestra <cat@gensokyo.uk>
This commit is contained in:
Ophestra 2025-02-23 01:36:48 +09:00
parent 416d93e880
commit 647c6ea21b
Signed by: cat
SSH Key Fingerprint: SHA256:gQ67O0enBZ7UdZypgtspB2FDM1g3GVw8nX0XSdcFw8Q
3 changed files with 8 additions and 2 deletions

View File

@ -6,6 +6,9 @@ import (
"strings" "strings"
) )
// UsageInternal causes the command to be hidden from help text when set as the usage string.
const UsageInternal = "internal"
type ( type (
// HandlerFunc is called when matching a directly handled subcommand tree. // HandlerFunc is called when matching a directly handled subcommand tree.
HandlerFunc = func(args []string) error HandlerFunc = func(args []string) error

View File

@ -44,8 +44,10 @@ func (n *node) writeCommands(w io.Writer) error {
if n == nil { if n == nil {
return nil return nil
} }
if _, err := fmt.Fprintf(w, "\t%s\t%s\n", n.name, n.usage); err != nil { if n.usage != UsageInternal {
return err if _, err := fmt.Fprintf(w, "\t%s\t%s\n", n.name, n.usage); err != nil {
return err
}
} }
return n.next.writeCommands(w) return n.next.writeCommands(w)
} }

View File

@ -289,6 +289,7 @@ func buildTestCommand(wout, wlog io.Writer) (c command.Command) {
}) })
c.New("empty", "empty subcommand") c.New("empty", "empty subcommand")
c.New("hidden", command.UsageInternal)
c.New("join", "wraps strings.Join"). c.New("join", "wraps strings.Join").
Command("out", "write result to wout", func(args []string) error { Command("out", "write result to wout", func(args []string) error {