How caffeine-addictt/waku works
Waku is a CLI project scaffolder. Its main workflow validates new options, prompts for project details and template style, obtains and parses a template, resolves license and variable data, writes generated files, and optionally initializes Git. The README also describes consistency-focused setup, while the tree exposes health and template-check commands. Source excerpts establish the main flow; some supporting command and template modules are unsampled, so their internal relationships are not expanded.
Main entry points: new.go New project · root.go Command root · git Git operations · store.go License selection
Components 22
CLI entrypoints
- Program entry
main.go - Command root
cmd/root.go - Template check
cmd/commands/check.go - Git healthcheck
cmd/commands/healthcheck.go
Project creation
- New project
cmd/commands/new.go - New options
cmd/options/new.go - License selection
internal/license/store.go - Generated files
cmd/commands/new.go
Template processing
- Prompt selection
internal/template/prompting.go - Template config
internal/template/parse_config.go - Style resources
internal/template/resource.go - Template parsing
internal/template/template.go - Template config model
pkg/config - Prompt variables
pkg/config/variables.go
External integrations
- Git operations
internal/git
Shared support
- Cleanup handlers
cmd/cleanup/cleanup.go - Progress UI
cmd/ui/spinner.go - Error handling
internal/errors/errors.go - Logging
pkg/log
Other components
- CLI user
- Template repository
- License catalog
Connections 23
- CLI user → Program entry: runs
README.md - Program entry → Command root: executes
main.go - Command root → New project: registers commands
cmd/root.go - Command root → Cleanup handlers: starts cleanup
cmd/root.go - Command root → Logging: sets verbosity
cmd/root.go - New project → New options: validates and reads
cmd/commands/new.go - New project → Progress UI: runs progress
cmd/commands/new.go - New project → Prompt selection: requests prompts
cmd/commands/new.go - New project → Template config: parses config
cmd/commands/new.go - New project → Style resources: collects resources
cmd/commands/new.go - New project → License selection: resolves license
cmd/commands/new.go - New project → Generated files: writes files
cmd/commands/new.go - New project → Git operations: initializes Git
cmd/commands/new.go - New project → Cleanup handlers: schedules cleanup
cmd/commands/new.go - New project → Error handling: formats errors
cmd/commands/new.go - New project → Logging: reports progress
cmd/commands/new.go - New options → Git operations: clones source
cmd/options/new.go - Git operations → Template repository: clones repository
internal/git/clone.go - Prompt selection → License selection: fetches choices
internal/template/prompting.go - New project → Prompt variables: resolves variables
cmd/commands/new.go - License selection → License catalog: fetches catalog
internal/license/store.go - Template check → Error handling: wraps errors
cmd/commands/check.go - Git healthcheck → Git operations: checks Git
cmd/commands/healthcheck.go