Merge _configs/ into config/ for single configuration directory. Update all path references. Changes: - Move _configs/* to config/ - Update .gitignore for new patterns - No code references to _configs/ found Impact: -1 root directory (layout_conventions.md compliance)
1.8 KiB
Where Wrappers Are Created
Location: scripts/install-cli.nu in the create_wrappers() function (lines 187-222)
Why We Have .real Suffix
The wrapper system works like this:
User runs: workspace --help ↓ ~/.cargo/bin/workspace (NuShell wrapper script - 864 bytes) ↓ Sets up environment variables (WORKSPACE_CONFIG_PATH, WORKSPACE_CONFIG_DIR, WORKSPACE_DATA_DIR) Discovers configuration files from multiple locations ↓ Calls: ~/.cargo/bin/workspace.real (actual compiled Rust binary - 7.1 MB) ↓ Returns: Output to user
The 2-File System:
- workspace (wrapper script)
- Small NuShell script (864 bytes)
- Sets up environment before running the real binary
- Automatically discovers config files from:
- ~/.config/core/workspace.toml
- .project/workspace.toml
- .vapora/workspace.toml
- workspace.real (real binary)
- Compiled Rust binary (7.1 MB)
- The actual executable from cargo install
- Runs with environment variables set by the wrapper
Why This Design?
- Configuration Discovery - The wrapper finds configs before the Rust binary runs
- Environment Setup - Automatically sets WORKSPACE_CONFIG_DIR and WORKSPACE_DATA_DIR
- User Transparency - Users run workspace --help normally, wrapper is invisible
- Separation of Concerns - Script layer handles config, binary handles logic
Current Status:
✅ workspace → NuShell wrapper → workspace.real (Rust binary) ✅ syntaxis-tui → NuShell wrapper → syntaxis-tui.real (Rust binary) ✅ syntaxis-dashboard → Direct binary (no wrapper needed - library component) ✅ syntaxis-api → Direct binary (runs on port 3001)
This is a clean, production-grade approach to managing CLI tools with configuration discovery! 🎉