Expand description
Project + plugin scaffolding.
Two functions:
scaffold_projectwrites a complete new project directory. Maps toumbral startproject <name>.scaffold_appwrites a new plugin crate atplugins/<name>/. Maps toumbral startapp <name>.
Both are pure: take a target path and the new name, write files,
return what was written. The binary’s main.rs wraps them with
CLI parsing + a stdout report.
Structs§
- Scaffold
Report - Report returned by both scaffolding functions: the paths written, so the binary can print them to the user.
Enums§
- Scaffold
Error - Error type for scaffolding operations. Wraps I/O and validation failures with enough context for a user-facing message.
Constants§
- RESERVED_
PLUGIN_ NAMES - Built-in plugin names that
umbral startapprefuses to scaffold over. Adding a new built-in plugin? Add its name here so futurestartapp <name>calls fail fast with a clear message.
Functions§
- register_
dep_ in_ cargo_ toml - Attempt to register
<name> = { path = "plugins/<name>" }under[dependencies]in the project’sCargo.toml. - scaffold_
app - Write a new plugin crate at
<project_root>/plugins/<name>/, using the per-concern layout (gaps2 #8): - scaffold_
plugin - Write a richer plugin scaffold at
<project_root>/plugins/<name>/targeted at distributable / reusable plugins (third-party crates you’d publish or share across projects). Layout: - scaffold_
project - Write a new umbral project at
parent_dir/<name>/.