The hof tool tries to remove redundent development activities
by using high level designs, code generation, and diff3
while letting you write custom code directly in the output.
( low-code for developers )
- Users write Single Source of Truth (SSoT) design for data models and the application generators
hofreads the SSoT, processes it through the code generators, and outputs directories and files- Users can write custom code in the output, change their designs, and regenerate code in any order
hofcan be customized and extended by only editing text files and nothofsource code.- Use your own tools, technologies, and practices,
hofdoes not make any choices for you hofis powered by Cue (https://cuelang.org & https://cuetorials.com)
You will have to download hof the first time.
After that hof will prompt you to update and
install new releases as they become available.
export HOF_VER=0.6.1
# Install (Linux, Mac, Windows)
curl -LO https://github.com/hofstadter-io/hof/releases/download/v${HOF_VER}/hof_${HOF_VER}_$(uname)_$(uname -m)
mv hof_${HOF_VER}_$(uname)_$(uname -m) /usr/local/bin/hof
# Shell Completions (bash, zsh, fish, power-shell)
echo ". <(hof completion bash)" >> $HOME/.profile
source $HOME/.profile
# Show the help text
hof --helpYou can always find the latest version from the
releases page
or use hof to install a specific version of itself with hof update --version vX.Y.Z.
Please see https://docs.hofstadter.io to learn more.
The first-example will take you through the process of creating and using a simple generator
Join us on Slack! https://hofstadter-io.slack.com
┌ Generator ─────────────────────────────┐
┌ CUE ───┐ │┌────────┐ ┌───────────┐ ┌───────────┐ │
│ your │◄───┼┤ schema │ │ partials │ │ statics │ │
│ design │◄─┐ │└───┬────┘ └─────┬─────┘ └─────┬─────┘ │
└───┬────┘ │ │ ▼ ▼ ▼ │
│ │ │┌────────┐ ┌───────────┐ ┌───────────┐ │
│ └─┼┤ genr │ │ templates │ │ config │ │
│ │└───┬────┘ └─────┬─────┘ └─────┬─────┘ │
│ └────│─────────────│─────────────│───────┘
│ ▼ │ │
│ ┌───────────┐ │ │
│ │ │ │ │
└────►│ HOF │◄─────────┘◄────────────┘
│ │
└─────┬─────┘
│
┌───────────┼───────────┐
▼ ▼ ▼
┌───────────────────────────┐
│ Files and Folders, │
│ All the Things │
└───────────────────────────┘