46 lines
2.1 KiB
Markdown
46 lines
2.1 KiB
Markdown
# 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](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/consumers/guide.md#configkit-scopes)
|
|
for exact callback and lifetime contracts.
|
|
|
|
## Example
|
|
|
|
For one application configuration scope, install the convenience declaration:
|
|
|
|
```go
|
|
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](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/cli.md#compare-configuration-selections)
|
|
owns its operator details.
|
|
|
|
The maintained [simple example](examples/simple) shows a complete consumer.
|
|
The [CommandKit CLI reference](https://gitea.maximumdirect.net/eric/CommandKit/src/branch/main/docs/cli.md#configuration-scopes)
|
|
describes its operator-facing behavior.
|
|
|
|
## License and attribution
|
|
|
|
This module is licensed under the [GNU Lesser General Public License v3.0 or
|
|
later](COPYRIGHT). The accompanying [LICENSE](LICENSE) contains the full LGPL
|
|
v3 and GPL v3 texts. See [third-party attribution](docs/oss/attribution.md)
|
|
for incorporated and dependency notices.
|