feat: Add archchroot helper and sudoers entry to z.sh, and update test_z.sh to use a mocked /mnt for testing.

This commit is contained in:
Zeev Diukman 2026-01-18 09:08:50 +02:00
parent 29ff943b7d
commit 6c65eddb69
2 changed files with 13 additions and 4 deletions

View file

@ -11,6 +11,12 @@ LOG_FILE="$MOCK_DIR/test_log.txt"
touch "$LOG_FILE"
echo "Using mock directory: $MOCK_DIR"
mkdir -p "$MOCK_DIR/mnt/etc/sudoers.d"
# Patch z.sh to use $MOCK_DIR/mnt instead of /mnt
TEST_SCRIPT="$MOCK_DIR/z_test.sh"
sed "s|/mnt|$MOCK_DIR/mnt|g" ./z.sh > "$TEST_SCRIPT"
chmod +x "$TEST_SCRIPT"
# Mock lsblk
cat > "$MOCK_BIN/lsblk" <<'EOF'
@ -88,7 +94,7 @@ echo "--- Starting z.sh in Mock Environment ---"
# yes - Confirm formatting
# (Enter) - Default packages
# Yes - Confirm installation
printf "\n\n\n\nyes\n\nYes\n" | bash ./z.sh
printf "\n\n\n\nyes\n\nYes\n" | bash "$TEST_SCRIPT"
echo ""
echo "--- Test Execution Log ---"

9
z.sh
View file

@ -7,6 +7,11 @@ selected_disk="/dev/vda"
seed_device="/dev/vda1"
sprout_device="/dev/vda2"
efi_device="/dev/vda3"
archchroot() {
[[ "$1" == "--" ]] && shift
local cmd="$*"
arch-chroot /mnt /usr/bin/bash -c "$cmd"
}
# 1. Select Disk
echo "Available storage disks:"
@ -158,6 +163,4 @@ genfstab -U /mnt > /mnt/etc/fstab
echo "root:root" | arch-chroot /mnt chpasswd
arch-chroot /mnt useradd -m -G wheel -s /usr/bin/bash zeev
echo "zeev:zeev" | arch-chroot /mnt chpasswd
# arch-chroot /mnt grub-install --target=x86_64-efi --efi-directory=/efi --bootloader-id=GRUB
# arch-chroot /mnt grub-mkconfig -o /boot/grub/grub.cfg
# arch-chroot /mnt systemctl enable NetworkManager
archchroot -- "echo 'zeev ALL=(ALL:ALL) ALL' > /etc/sudoers.d/zeev"