Migrate filesystem layout to XDG-compliant, fully isolated directory structure #18
Reference in New Issue
Block a user
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Bootstrap currently scatters files across multiple unrelated locations in the user's home directory:
~/.local/bin/, polluting a directory the user may already use for their own executablessudoto install into/opt/nvimand/usr/local/bin~/.nvm/,~/.cargo/,~/.rustup/~/.local/share/pnpm— isolated from the rest of Bootstrap's dataregistry.json) is stored in~/.config/bootstrap/, which is semantically wrong —.configis for configuration, not runtime stateenv.d/local-bin.shsnippet to add~/.local/binto PATHThis fragmentation makes clean uninstallation impossible without a manifest, violates the XDG Base Directory Specification, and contradicts Bootstrap's core principle of being a single, nukeable, fully isolated system.
Proposed Layout
Environment Variables
BOOTSTRAP_DIR~/.config/bootstrapBOOTSTRAP_DATA_DIR~/.local/share/bootstrapBOOTSTRAP_STATE_DIR~/.local/state/bootstrapBOOTSTRAP_CACHE_DIR~/.cache/bootstrapBOOTSTRAP_BIN$BOOTSTRAP_DATA_DIR/binBOOTSTRAP_OPT$BOOTSTRAP_DATA_DIR/optBOOTSTRAP_RUNTIMES$BOOTSTRAP_DATA_DIR/runtimesClean Removal
After this migration, full removal becomes: