From 6c65eddb69fe83bb43133fc72683067ca26d8f99 Mon Sep 17 00:00:00 2001 From: Zeev Diukman Date: Sun, 18 Jan 2026 09:08:50 +0200 Subject: [PATCH] feat: Add `archchroot` helper and sudoers entry to `z.sh`, and update `test_z.sh` to use a mocked `/mnt` for testing. --- test_z.sh | 8 +++++++- z.sh | 9 ++++++--- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/test_z.sh b/test_z.sh index 6e4f6d0..41adde7 100644 --- a/test_z.sh +++ b/test_z.sh @@ -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 ---" diff --git a/z.sh b/z.sh index b1f03a9..2b4cf6f 100755 --- a/z.sh +++ b/z.sh @@ -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" \ No newline at end of file