This repository was archived by the owner on Dec 12, 2024. It is now read-only.
Introduce ABNF CLI #12
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces a CLI to ABNF that enables CLI automation within a CI/CD pipeline. It adopts the Cobra framework, used in many Go projects such as Kubernetes, Hugo, and GitHub CLI to name a few. The README was updated to reflect the new CLI capabilities.
The automation is defined through an
abnf.ymlfile that (by default) is expected in the working directory, but can be explicitly specified with a-fflag to indicate an alternate location. For those at the start of their automation journey with ABNF, they may opt to use theinitcommand to write out a draft automation configuration file. Theinitcommand also accepts the-ffile flag to specify an alternate location from the working directory.The
generatecommand is the way that the automation is invoked. It locates and loads the generation configuration properties from theabnf.ymlfile. The properties in the configuration file are as follows:Code Generation Configuration Properties
./testdata/core.abnfcore_abnf.gocore.operators,alternatives}The
generateoption either invokesGenerateABNFAsOperatorsorGenerateABNFAsAlternativesdepending on the value of thegenerateproperty in theabnf.ymlfile.The code is structured to support growth of the configuration file format by including a
versionproperty. The code validates theversionvalue when loading theabnf.ymlfile inconfig.go.