Skip to content
This repository was archived by the owner on Jul 1, 2026. It is now read-only.

Wire dotfiles/install.sh into all four setup scripts - #64

Merged
cpitzi merged 1 commit into
mainfrom
wire-dotfiles-install
Jun 17, 2026
Merged

Wire dotfiles/install.sh into all four setup scripts#64
cpitzi merged 1 commit into
mainfrom
wire-dotfiles-install

Conversation

@cpitzi

@cpitzi cpitzi commented Jun 17, 2026

Copy link
Copy Markdown
Collaborator

Origin

Chris had just added the dotfiles/ capture directory (#63) with an
install.sh that deploys hand-tuned local configs (alacritty et al.) onto a
machine. He then asked to wire that installer into the provisioning scripts so
a freshly-provisioned or rebuilt machine restores those configs automatically,
without a manual post-provision step.

What changed

Each of the four setup-*.sh scripts now runs dotfiles/install.sh
automatically, as a non-fatal post-step immediately after the existing
claude-cost-export deploy — i.e. after the repo-clone step that lands the
workstation-bootstrap checkout containing install.sh:

if [[ -x "$WB_REPO/dotfiles/install.sh" ]]; then
  section "Local config files (dotfiles)"
  "$WB_REPO/dotfiles/install.sh" || warn "dotfiles install failed (non-fatal — re-run later)"
fi

The block is identical across all four scripts (per the keep-in-sync rule)
and deliberately mirrors the adjacent claude-cost-export precedent:

  • -x-guarded — an older clone without dotfiles/install.sh skips cleanly.
  • Reuses $WB_REPO — already defined in the preceding "Installing Scripts"
    step; no new clone, no duplicated logic.
  • Non-fatal — a deploy failure is a warn, never a hard exit mid-setup.
  • No step renumbering — like cost-export it's an unnumbered sub-section, so
    TOTAL_STEPS and every existing N/$TOTAL_STEPS header are untouched.

dotfiles/README.md updated: the "Not yet wired into setup-.sh" section
becomes "Deployed by setup-
.sh".

Verification

  • shellcheck --severity=warning clean on all four scripts.
  • bash -n syntax check passes on all four.
  • The inserted block is byte-identical across the four files (verified by grep).

Note (not in scope here)

The captured alacritty config pins working_directory = "/home/cpitzi" (an
absolute path, because alacritty doesn't expand ~). Auto-deploying it assumes
the target runs as user cpitzi. True for the homelab VMs and laptop; if a
future target uses a different username, that one value would need adjusting.
Flagging rather than fixing, since it's a property of the captured config, not
this wiring.

🤖 Generated with Claude Code

Each setup-*.sh now deploys the captured dotfiles automatically, as a
non-fatal post-step right after the repo-clone step (which lands the
workstation-bootstrap checkout that holds install.sh). Mirrors the
adjacent claude-cost-export block exactly: -x-guarded so an older clone
without dotfiles/install.sh skips cleanly, $WB_REPO reused, failure is a
warning not a hard exit. No step renumbering — like cost-export it's an
unnumbered sub-section. README updated: "not yet wired" -> "deployed by
setup-*.sh".

Prompt-Origin: Chris asked to wire dotfiles/install.sh into the setup
scripts so a freshly-provisioned machine restores his captured local
configs (alacritty et al.) without a manual step, following the just-
added dotfiles/ capture directory.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cpitzi
cpitzi enabled auto-merge (squash) June 17, 2026 22:01
@cpitzi
cpitzi merged commit f6df7a9 into main Jun 17, 2026
2 checks passed
@cpitzi
cpitzi deleted the wire-dotfiles-install branch June 17, 2026 22:01
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant