Files
commandkit/integrations/ckconfig
..
2026-10-26 03:57:11 +00:00

CommandKit ckconfig

ckconfig is the optional ConfigKit integration for CommandKit. It adapts ConfigKit loaders and scopes into reusable commandkit.Command declarations; installing the integration is explicit and does not modify an application by itself.

Module

The module path is gitea.maximumdirect.net/eric/CommandKit/integrations/ckconfig. Its first release is prepared as v0.1.0. It uses the core commandkit package and ConfigKit; it does not import PromptKit. See the consumer guide for exact callback and lifetime contracts.

Example

For one application configuration scope, install the convenience declaration:

app, err := commandkit.New(identity, ckconfig.AppCommand(loadAppConfig))

Use ckconfig.Command(ckconfig.Suite[Input, State]{...}) to define named scopes, selectors, input checks, and state shared by the selected acquisitions or comparison in a config invocation. ckconfig.FromConfigKit adapts a typed ConfigKit loader. The config command family exposes scope discovery and the validate, show, sources, explain, and diff operations supported by the declared scopes. Source reports include native destination, placement, unresolved destination, and source version-check evidence. Comparison returns ConfigKit's native records to the YAML report path; the CLI reference owns its operator details.

The maintained simple example shows a complete consumer. The CommandKit CLI reference describes its operator-facing behavior.

License and attribution

This module is licensed under the GNU Lesser General Public License v3.0 or later. The accompanying LICENSE contains the full LGPL v3 and GPL v3 texts. See third-party attribution for incorporated and dependency notices.