-
Notifications
You must be signed in to change notification settings - Fork 0
Project Scaffolding
Status: beta. Beez embeds Tempify so you can scaffold new projects from templates without installing Tempify separately.
Tempify is linked into the beez binary. At CMake configure time, Beez fetches Tempify tag v0.1.2 from GitHub (requires git). Override with -DTEMPIFY_SOURCE_DIR=/abs/path/to/Tempify when configuring Beez to use a local checkout.
For full Tempify documentation (templates, hooks, layers, questions.lua, reapply, and so on), see the Tempify repository.
beez --init <tempify-args...>Everything after --init is passed to Tempify unchanged. Beez does not parse Tempify flags.
beez --init list
beez --init info basic_cpp
beez --init basic_cpp ./my-app
beez --init basic_cpp ./my-app --set project_name="My App" --set include_ci=false
beez --init --help # Tempify help (not Beez help)
beez --init --version # Tempify versionbeez --init runs before Beez loads build.lua. You can scaffold into an empty directory or outside an existing Beez project.
Normal Beez commands (-p, --list, <target>, …) still require build.lua in the current directory.
| Invocation | What runs |
|---|---|
beez --init list |
Tempify list
|
beez --init -p --help |
Tempify with Prebyte passthrough (-p is a Tempify flag here) |
beez -p generate:code |
Beez phase run (needs build.lua) |
beez --list tasks |
Beez list (needs build.lua) |
Rule: when --init is the first argument, Beez delegates entirely to Tempify. Beez flags such as -p, --list, --verbose are not interpreted unless you place them after --init as Tempify arguments.
- List templates:
beez --init list - Inspect a template:
beez --init info <template> - Render into a target directory:
beez --init <template> <output-dir> [options] - Add a
build.lua(manually or from the generated project) and use Beez as usual
| CMake option | Purpose |
|---|---|
| (default) | Fetch Tempify v0.1.2 via FetchContent
|
-DTEMPIFY_SOURCE_DIR= |
Use a local Tempify tree instead of fetching |
Example with a local Tempify checkout:
cmake -B build -DTEMPIFY_SOURCE_DIR=/path/to/Tempify ...Beez integration tests cover CLI routing (help, version, Prebyte passthrough, and that normal Beez commands still work without --init). See tests/integration/app/test_cli_init.cpp.
Template rendering correctness (file contents, layers, hooks, snapshots) is tested in the Tempify repository, not yet end-to-end through beez --init in Beez.
-
CLI Overview — invocation modes and
build.luarequirements -
CLI Flag Reference —
--initflag entry - Building and Setup — git requirement for fetching Tempify
- Tempify on GitHub — templates, CLI, and upstream docs
Quick Reference · Glossary · FAQ
- Fundamentals
- Core Concepts
- Project Layout
- First Pipeline
- Phases and Scopes
- How Phases and Scopes Work
- Selecting with Phases and Scopes
- Designing Phases and Scopes
- Parallel Execution and Dependencies
- Configuration
- Configuration Overview
- Global User Config
- Project Config
- Environment Variables
- Performance Settings
- Cache Settings
- Config Reference
- CLI
- CLI Overview
- Running Targets
- Filtering by Phase
- Running a Single Step
- Listing Entities
- Output and Logging Flags
- Cache and Maintenance Flags
- Meta and Utility Commands
-
Project Scaffolding —
beez --init(embedded Tempify) - CLI Flag Reference
- Lua DSL
- DSL Overview
- Plugin System — Plugins, Config DSL, Standard-Workflows
- Step Declaration
- Task Declaration
- Workflow Declaration
- Order Declaration
- Configure Step
- ReqPack Declaration
- Beez API
- Step Context
- DSL Patterns
- Caching
- Caching Overview
- Step Cache
- Success Cache
- Glob Metadata Cache
- Artifact Patterns
- Cache Keys and Invalidation
- Cache Storage and Maintenance
- Caching Troubleshooting
- UI and Output
- Output Modes
- Progress and Animation
- Colors and Themes
- Run Summaries
- Logging and Log Files
- Development and Contribution
- Building and Setup
- Repository Layout
- Testing
- Code Quality
- Feature Development Workflow
- Submitting Changes