From 41014590cc54ec490505a3851fa59ef8c5d6aebe Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Sat, 10 Jan 2026 00:54:17 -0600 Subject: fix(archsetup): copy archsetup to user directory before stow Previously, stow created dotfile symlinks pointing to wherever archsetup was run from (e.g., /root/archsetup or /tmp). If run from a location inaccessible to the user, zsh would fail to read its config on first login and prompt for new user setup. The fix copies archsetup to ~/code/archsetup before running stow, ensuring symlinks always point to a user-accessible location. Also adds a test to verify dotfiles are readable by the user (not just root). Co-Authored-By: Claude Opus 4.5 --- scripts/testing/run-test.sh | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'scripts') diff --git a/scripts/testing/run-test.sh b/scripts/testing/run-test.sh index 4bcb55b..e73f29c 100755 --- a/scripts/testing/run-test.sh +++ b/scripts/testing/run-test.sh @@ -296,6 +296,22 @@ else VALIDATION_PASSED=false fi +# Check if dotfile symlinks are accessible by user (not just root) +# This catches the bug where stow creates symlinks pointing to /root/archsetup or /tmp +# Use sudo -u to avoid starting a full login shell which might hang +step "Checking if dotfiles are readable by user cjennings" +DOTFILE_CHECK=$(sshpass -p "$ROOT_PASSWORD" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ + "root@$VM_IP" "sudo -u cjennings cat /home/cjennings/.zshrc > /dev/null 2>&1 && echo OK || echo FAIL" 2>/dev/null) +if [ "$DOTFILE_CHECK" = "OK" ]; then + success "Dotfiles are readable by user cjennings" +else + error "Dotfiles are NOT readable by user cjennings (symlinks may point to inaccessible location)" + # Show where the symlink points for debugging + sshpass -p "$ROOT_PASSWORD" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ + "root@$VM_IP" "ls -la /home/cjennings/.zshrc" >> "$LOGFILE" 2>&1 + VALIDATION_PASSED=false +fi + # Check if yay is installed step "Checking if yay (AUR helper) is installed" if sshpass -p "$ROOT_PASSWORD" ssh -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null \ -- cgit v1.2.3