Skip to content

machines: support macOS and add to mac nest#9

Merged
tylerthecoder merged 1 commit into
mainfrom
claude/trusting-blackwell-94719b
May 4, 2026
Merged

machines: support macOS and add to mac nest#9
tylerthecoder merged 1 commit into
mainfrom
claude/trusting-blackwell-94719b

Conversation

@tylerthecoder
Copy link
Copy Markdown
Owner

@tylerthecoder tylerthecoder commented May 4, 2026

Summary

  • Make setups/machines/setup.sh cross-platform: skip pacman -S sftpman on macOS, install 1password-cli via Homebrew when op is missing, harden with set -euo pipefail and quoted paths.
  • Wire setup.sh as the install hook in setups/machines/setup.json so op inject runs before the link step needs ssh_config.secret.
  • Add machines to the mac nest's dependencies so ~/.ssh/config gets linked from the 1Password-injected template.

Test plan

  • On Mac: owl nest install (brew installs 1password-cli if missing, then op inject runs)
  • On Mac: owl nest link produces ~/.ssh/configsetups/machines/ssh_config.secret
  • ssh octo (or any of the 4 hosts) resolves to the IP from the Dev 1Password vault
  • On Arch: behavior unchanged — sftpman still installed via pacman

🤖 Generated with Claude Code


Note

Medium Risk
Moderate risk because it changes install-time behavior and tooling dependencies (package manager installs and op inject) that can fail differently across OSes and affect ~/.ssh/config generation.

Overview
Adds the machines setup to the mac nest so mac installs now generate and link ~/.ssh/config from the 1Password-injected template.

Wires setups/machines/setup.sh as an install hook and makes it cross-platform: installs sftpman only on Linux/pacman, bootstraps missing op via Homebrew (macOS) or yay (Linux), and hardens the script with set -euo pipefail and quoted paths.

Reviewed by Cursor Bugbot for commit ebe1103. Bugbot is set up for automated code reviews on this repo. Configure here.

- setup.sh: detect OS — install sftpman only on Arch (Linux), install
  1Password CLI via brew on Mac / yay on Linux when missing, then run
  op inject. Add set -euo pipefail and quote SCRIPT_DIR.
- setup.json: wire setup.sh as the install hook so op inject runs
  before the link step needs ssh_config.secret.
- nests/mac: depend on machines so the SSH host config gets linked.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit ebe1103. Configure here.

@@ -1,5 +1,6 @@
{
"name": "machines",
"install": "local:setup.sh",
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Link runs before install in All operation

Medium Severity

The machines setup links ssh_config.secret (produced by op inject in the install hook), but the framework's Operation::All in apply_operation_once calls link_once before install_once. When a user runs owl nest all, the link step will fail with "source not found" (silently printing ❌) because ssh_config.secret hasn't been generated yet. The install then creates the file, but the link is never retried, leaving ~/.ssh/config unlinked.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit ebe1103. Configure here.

@tylerthecoder tylerthecoder merged commit f8266a3 into main May 4, 2026
3 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