CLI for initializing projects in a configurable way.
 
 
 
 
 
 
Go to file
Joshua Potter 20ebd74375 Hide test files from documentation generator. 2023-11-25 11:52:59 -07:00
.githooks Run formatting with additional rules. 2023-11-24 19:35:34 -07:00
include Add documentation for `config`, `dyn_array`, `error`, and `string_buf`. 2023-11-25 11:51:42 -07:00
specs/test Allow reading in STRING prompts. 2023-11-25 10:37:41 -07:00
src Add documentation for `config`, `dyn_array`, `error`, and `string_buf`. 2023-11-25 11:51:42 -07:00
test Add documentation for `config`, `dyn_array`, `error`, and `string_buf`. 2023-11-25 11:51:42 -07:00
.clang-format Run formatting with additional rules. 2023-11-24 19:35:34 -07:00
.envrc Add automatic, configured formatting. 2023-11-23 08:22:43 -07:00
.gitignore Add documentation for `config`, `dyn_array`, `error`, and `string_buf`. 2023-11-25 11:51:42 -07:00
Doxyfile Hide test files from documentation generator. 2023-11-25 11:52:59 -07:00
Makefile Allow executing `run.sh`. 2023-11-24 20:29:24 -07:00
README.md Add documentation for `config`, `dyn_array`, `error`, and `string_buf`. 2023-11-25 11:51:42 -07:00
flake.lock Add example `main.c` file. 2023-11-22 11:50:15 -07:00
flake.nix Add documentation for `config`, `dyn_array`, `error`, and `string_buf`. 2023-11-25 11:51:42 -07:00
main.c Add documentation for `config`, `dyn_array`, `error`, and `string_buf`. 2023-11-25 11:51:42 -07:00

README.md

bootstrap

TODO:

  • Add documentation throughout (ownership, docstrings, etc.).
  • Add evaluator tests.
  • Color output to console.

CLI utility for initializing projects in reproducible ways.

Overview

Within the specs directory exists so-called specs. A spec is a directory containing an optional 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 bootstrap init curses interface. The value is used to determine what kind of prompt bootstrap 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.

Development

This template includes an .envrc file for use with direnv.

Formatting

A pre-commit file is included in .githooks to ensure consistent formatting. Run the following to configure git to use it:

git config --local core.hooksPath .githooks/

If running direnv, this is done automatically provided git is installed and a repository is initialized.