Documentation
¶
Overview ¶
Package cmdutil provides the Factory injected into every command: lazily-resolved config, token store, and API client, plus the values of the persistent --json/--server/--app flags.
Index ¶
- func Confirm(io *output.IOStreams, yes bool, prompt string) error
- func ConfirmDeletion(io *output.IOStreams, yes bool, what string) error
- func EdgeDisplay(name *string, loc string) string
- func ResolveNodeRef(cmd *cobra.Command, client graphql.Client, memory, ref string) (string, error)
- func ResolveNodeURN(cmd *cobra.Command, client graphql.Client, ref string) (string, error)
- func ResolveTextInput(flag, value, file string, stdin io.Reader) (string, error)
- type Factory
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func Confirm ¶ added in v0.2.0
Confirm gates a significant but non-deletion action behind the same rule as ConfirmDeletion: --yes skips the prompt, an interactive terminal is asked y/N, and a non-interactive caller without --yes is refused with a Usage error so the action is always explicit. `prompt` is the full question, without the trailing " (y/N)".
func ConfirmDeletion ¶
ConfirmDeletion gates destructive commands. --yes skips the prompt; otherwise an interactive terminal asks y/N, and a non-interactive caller (scripts, agents) is refused with a Usage error so deletions are always explicit.
func EdgeDisplay ¶ added in v0.3.0
EdgeDisplay is the human handle for an edge: its name, or its loc when the name is empty (spec 037 — an edge's name is optional, its loc is the identity, so a nameless edge still prints something addressable).
func ResolveNodeRef ¶ added in v0.3.0
ResolveNodeRef resolves a node reference into a node ID. With an empty memory it requires a fully-qualified URN (ResolveNodeURN). With a memory (the `org::memory` form, optionally hrn:/urn:-prefixed) the ref is a bare loc within that memory: a node URN is just <org>::<memory>::<loc>, so the two are joined and resolved. The memory form is the additive convenience; without it the strict-URN behavior is unchanged.
func ResolveNodeURN ¶
ResolveNodeURN turns a fully-qualified node URN into a node ID via Query.resolveUrn. Bare locs are rejected client-side with a usage error: node references always name the memory (same-loc collisions across memories made anything less ambiguous). A URN that resolves to a different entity kind is a usage error too.
func ResolveTextInput ¶ added in v0.3.0
ResolveTextInput resolves a text field that may be supplied inline, from a file, or on stdin — the same convention the --content / --content-file / "-" flags already use, factored out so every write flag behaves identically.
flag is the user-facing flag name (e.g. "abstract"): the inline value comes from --<flag>, the file from --<flag>-file, and a sentinel value of "-" reads stdin. The inline value and the file are mutually exclusive. Callers that gate on cmd.Flags().Changed decide whether an empty result means "clear" (an explicit empty string) or "leave unset".
A paragraph-length field with backticks or newlines is hostile to inline shell quoting, so --<flag>-file / stdin are the ergonomic path (issue #38).
Types ¶
type Factory ¶
type Factory struct {
IOStreams *output.IOStreams
HTTPClient *http.Client
// Persistent flag values, bound by the root command.
JSON bool
ServerFlag string
AppFlag string
// Overridable for tests.
ConfigFn func() (*config.Config, error)
TokenStoreFn func() store.Store
// contains filtered or unexported fields
}
func NewFactory ¶
func NewFactory() *Factory
func (*Factory) App ¶
App resolves the App URN context: --app flag, then config default. Empty means no App context, which the server treats as fine.
func (*Factory) GraphQLClient ¶
GraphQLClient returns an authenticated genqlient client, failing with the AuthRequired exit code when no credentials are present.
func (*Factory) Server ¶
Server resolves the server base URL: --server flag, then HADRON_SERVER env, then config, then the hosted default.
func (*Factory) Token ¶
func (f *Factory) Token() (string, auth.TokenSource, error)
Token returns the active token and its source for the resolved server ("" source when unauthenticated). HADRON_TOKEN is checked before the token store so CI never triggers a keyring probe.