This repository has been archived by the owner on Dec 12, 2024. It is now read-only.
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.yml
file that (by default) is expected in the working directory, but can be explicitly specified with a-f
flag to indicate an alternate location. For those at the start of their automation journey with ABNF, they may opt to use theinit
command to write out a draft automation configuration file. Theinit
command also accepts the-f
file flag to specify an alternate location from the working directory.The
generate
command is the way that the automation is invoked. It locates and loads the generation configuration properties from theabnf.yml
file. The properties in the configuration file are as follows:Code Generation Configuration Properties
./testdata/core.abnf
core_abnf.go
core
.
operators
,alternatives
}The
generate
option either invokesGenerateABNFAsOperators
orGenerateABNFAsAlternatives
depending on the value of thegenerate
property in theabnf.yml
file.The code is structured to support growth of the configuration file format by including a
version
property. The code validates theversion
value when loading theabnf.yml
file inconfig.go
.