Make assimilate.sh cross-platform (macOS + Linux) - #12
Open
akan72 wants to merge 12 commits into
Open
Conversation
88 tasks
akan72
force-pushed
the
feature/cross-platform-assimilate
branch
from
August 22, 2026 19:28
698f07a to
56bd4cf
Compare
Branches on `uname -s` to skip macOS-only steps on Linux: - Skip hammerspoon/ghostty/vscode/zed symlinks and `brew bundle install` - Source dotfiles bashrc from $HOME/.bashrc instead of symlinking (the EC2 user_data appends a secrets block; symlinking would write into the repo) - Pick delta tarball + SHA256 per OS/arch (Linux SHA marked TODO until first install on the EC2 box) - Only run `nvim PackerSync` if nvim is on PATH Enables running the install script on the EC2 dev box without breaking the existing macOS flow.
lsd isn't installed on the EC2 dev box (no brew, dnf doesn't ship it), and the dotfiles flow doesn't have a good place to install it cross-platform without dragging in a several-minute cargo compile. Plain ls is fine.
Matches the same pattern nvm uses two lines above. Sourcing an absent file errors out on shell startup, which is harmless on Mac (rust is installed) but breaks the prompt on systems without rust.
AL2023 (and likely most non-Fedora Linuxes) don't have neovim in the default package repos. macOS gets it from the Brewfile. Drops nvim into $HOME/.local/bin so no root is needed. Placed above the PackerSync block so the plugin sync that depends on `command -v nvim` actually fires.
v0.10.4 (my earlier guess) doesn't exist as a published release. v0.9.5 is what's installed on the Mac, and v0.9.x predates the asset-rename (still uses `nvim-linux64.tar.gz`), so the existing extraction path stays correct.
zsh-autosuggestions, zsh-syntax-highlighting, and rust may be absent on boxes where the Brewfile hasn't been applied (Linux dev box) or where those brew packages aren't installed. Mirror the existing nvm/bun pattern: source only when the file exists.
Without an argument, sourcing nvm.sh triggers nvm_auto use, which tries to resolve a version (from .nvmrc or default-alias) and errors with "N/A: version N/A -> N/A is not yet installed" when neither is set. --no-use loads nvm without invoking auto-use; users still get the `nvm` function and can `nvm use <version>` explicitly when they want one.
AL2023 on older/un-updated AMIs ships git 2.40, which lacks `git clone --revision`. Use git init + fetch --depth 1 <sha> + checkout instead, which pins the same single commit on any git version.
The cross-platform pass dropped the alias entirely so Linux boxes without lsd keep a working ls, but that also removed it on macOS where lsd is installed via the Brewfile. Guard on the binary instead.
akan72
force-pushed
the
feature/cross-platform-assimilate
branch
from
August 22, 2026 19:36
56bd4cf to
58abadf
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
assimilate.shwork on macOS and Linux, including Amazon Linux 2023..bashrcstub, and keep pinned tool installation compatible across architectures.Test Plan
.bashrcsourcing the repository config.bash -n assimilate.sh bashrcandzsh -n zshrc.