Joshua Potter 4a8f8db0a5 | ||
---|---|---|
include | ||
specs/clang | ||
src | ||
.envrc | ||
.gitignore | ||
Makefile | ||
README.md | ||
flake.lock | ||
flake.nix | ||
main.c |
README.md
spec
CLI utility for initializing projects in reproducible ways.
Overview
Within the specs
directory exists so-called specs. A spec is a directory
containing a spec.json
file and a run.sh
file. The former is configured like
so:
{
versions: [...],
}
The keys of this top-level JSON object correspond to the parameters that are
prompted by the spec init
curses interface. The value is used to determine
what kind of prompt spec
provides for the given question. Possible value types
include:
[...]
(list)- This indicates a select option prompt. The user chooses amongst the values specified in the JSON list.
Once all prompts are evaluated, the keys of the object are converted into
uppercase environment variables and passed to the run.sh
file relative to the
current directory.