Skip to content

Make the dotfiles cross-platform (macOS + Linux)#10

Merged
marcaube merged 6 commits into
masterfrom
cross-platform-linux
May 27, 2026
Merged

Make the dotfiles cross-platform (macOS + Linux)#10
marcaube merged 6 commits into
masterfrom
cross-platform-linux

Conversation

@marcaube

Copy link
Copy Markdown
Owner

No description provided.

@marcaube marcaube self-assigned this May 27, 2026
marcaube and others added 5 commits May 27, 2026 15:05
Dotbot's -c flag takes a single config file, so passing both the common
and OS-specific configs as separate -c flags meant only the last one ran
— skipping all the main symlinks and the Homebrew install. Concatenate
the two YAML sequences into a temp file and pass that instead.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
coreutils moved to Brewfile.darwin, but CI skips that file entirely to
avoid casks/MAS apps it can't install — so the coreutils PATH shim was
never exercised. Mirror the original CI pattern: bundle just the taps
and brew formulae from the macOS file when running in CI.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Homebrew's telnet formula is macOS-only, so it failed under Linuxbrew.
The failure was masked because the multi-line bundle command's exit
status came from the trailing macOS `if`, which is 0 on Linux. Move
telnet to Brewfile.darwin, install it via apt on Linux instead, and add
`|| exit 1` so a real `brew bundle` failure fails the build.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add a Debian/Ubuntu installation section alongside the macOS one and flag
the macOS-only steps (App Store, iCloud, mackup).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
The runner ships a preinstalled Linuxbrew; restoring a cached Cellar on
top of it left kegs present-but-unregistered, so `brew bundle`'s upgrade
step failed ("File exists" / "No such keg"). The first run passed only
because the cache was cold. Cache just ~/.cache/Homebrew (downloads) so
bottles aren't re-fetched but install cleanly each run, and bump the
cache key to v2 to discard the poisoned archive.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@marcaube marcaube marked this pull request as ready for review May 27, 2026 20:20
@marcaube marcaube merged commit fcf3971 into master May 27, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant