syntaxis/docs/howto/wrappers_info.md
Jesús Pérez 9cef9b8d57 refactor: consolidate configuration directories
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)
2025-12-26 18:36:23 +00:00

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:

  1. 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
  1. 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?

  1. Configuration Discovery - The wrapper finds configs before the Rust binary runs
  2. Environment Setup - Automatically sets WORKSPACE_CONFIG_DIR and WORKSPACE_DATA_DIR
  3. User Transparency - Users run workspace --help normally, wrapper is invisible
  4. 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! 🎉