CLI for initializing projects in a configurable way.
 
 
 
 
 
 
Go to file
Joshua Potter 25b46b9b64 Fix config/dyn_array with tests. 2023-11-23 07:40:17 -07:00
include Fix config/dyn_array with tests. 2023-11-23 07:40:17 -07:00
specs/clang Simplify the clang example template. 2023-11-23 04:10:04 -07:00
src Fix config/dyn_array with tests. 2023-11-23 07:40:17 -07:00
test Fix config/dyn_array with tests. 2023-11-23 07:40:17 -07:00
.envrc Initial commit. 2023-11-22 10:43:05 -07:00
.gitignore Add config tests. 2023-11-23 04:09:58 -07:00
Makefile Fix config/dyn_array with tests. 2023-11-23 07:40:17 -07:00
README.md Better naming throughout to match `spec`. 2023-11-22 14:55:55 -07:00
flake.lock Add example `main.c` file. 2023-11-22 11:50:15 -07:00
flake.nix Better naming throughout to match `spec`. 2023-11-22 14:55:55 -07:00
main.c Fix config/dyn_array with tests. 2023-11-23 07:40:17 -07:00

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.