feat(devcontainer): add init-home.sh for PVC bootstrap

Links cargo binaries, creates sccache dir, and writes default .zshrc
on first boot. No-op on subsequent sessions.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
jgrusewski
2026-02-25 21:12:42 +01:00
parent 5dc617fa20
commit 30516764c6

25
.devcontainer/init-home.sh Executable file
View File

@@ -0,0 +1,25 @@
#!/bin/bash
set -euo pipefail
# Bootstrap cargo into PVC-backed home if not already present
if [ ! -d "$HOME/.cargo/bin" ]; then
echo "[init-home] First run: linking cargo toolchain..."
mkdir -p "$HOME/.cargo/bin"
# Copy cargo config and link binaries from shared rustup
for bin in /opt/cargo/bin/*; do
ln -sf "$bin" "$HOME/.cargo/bin/$(basename "$bin")"
done
echo "[init-home] Cargo toolchain linked."
fi
# Ensure sccache cache dir exists
mkdir -p "${SCCACHE_DIR:-$HOME/.cache/sccache}"
# Default .zshrc if none exists (oh-my-zsh is in the image, config in PVC)
if [ ! -f "$HOME/.zshrc" ]; then
cp /home/dev/.oh-my-zsh/templates/zshrc.zsh-template "$HOME/.zshrc" 2>/dev/null || true
echo 'export PATH="$HOME/.cargo/bin:$PATH"' >> "$HOME/.zshrc"
echo 'export SQLX_OFFLINE=true' >> "$HOME/.zshrc"
fi
echo "[init-home] Ready."