Files
commandkit/integrations/ckconfig/examples/simple/README.md

1.9 KiB

Simple consumer

This example imports go.maximumdirect.net/ckconfig and go.maximumdirect.net/commandkit; the ckconfig v0.4.0 candidate uses core v0.4.0, ConfigKit v1.1.0, and Go 1.27.0. Set GOWORK=off GOTOOLCHAIN=local for the commands below.

Run the maintained example with:

go run . config show
go run . config show --config fixtures/before.yml --verbose
go run . config show --config fixtures/before.yml --quiet
go run . config explain --list --under /schema
go run . config show --path /greeting --set '/greeting="Hi"'
go run . config diff --config fixtures/before.yml --against-config fixtures/after.yml
go run . config diff --set '/greeting="Hi"' --details --check
go run . config validate --config fixtures/invalid.yml --details --severity error
go run . config sources --config fixtures/invalid.yml --source-id source-1
go run . greet
go run . greet --count=0 --tag=first --tag second

The config family comes from one typed ConfigKit scope. The custom greet command uses CommandKit's typed bindings and shows the difference between an omitted --count and an explicitly supplied zero, plus ordered repeated tags. With no --config, application settings use the in-memory default. A supplied configuration and overlay are passed to ConfigKit unchanged. The comparison command loads the two local fixtures and reports changes.greeting: Goodbye. The before fixture uses schema version 1, which ConfigKit reports as a provider warning in verbose mode. Ordinary mode hides the warning while preserving the effective YAML report; quiet mode suppresses that report. The invalid fixture demonstrates a failed-load report and captured source inventory; source-1 is the ID from that fixture's acquisition. The scope opts in to transient overrides and passes them into its normal ConfigKit load. The diff example compares an overridden left side with ordinary configuration on the right and returns status 3 because the values differ.