#!/bin/bash # Exit on error set -e ################################################################################################################## # Custom Arch ISO Builder Script ################################################################################################################## # Get absolute path of script directory SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" # Check if running on btrfs if lsblk -f | grep btrfs > /dev/null 2>&1; then echo "Warning: Building on BTRFS filesystem. Make backups before continuing." read -p "Press Enter to continue... CTRL + C to stop" fi # Setting general parameters buildFolder="$SCRIPT_DIR/build" outFolder="$SCRIPT_DIR/out" echo "################################################################" echo "Build folder: $buildFolder" echo "Out folder : $outFolder" echo "################################################################" # Check if archiso is installed if ! pacman -Qi archiso &> /dev/null; then echo "Installing archiso..." sudo pacman -S --noconfirm archiso fi # Make mkarchiso verbose sudo sed -i 's/quiet="y"/quiet="n"/g' /usr/bin/mkarchiso echo "Cleaning build environment..." [ -d "$buildFolder" ] && sudo rm -rf "$buildFolder" mkdir -p "$buildFolder" echo "Copying releng folder to build directory..." cp -r "$SCRIPT_DIR/releng" "$buildFolder/" #echo "Cleaning pacman cache..." #yes | sudo pacman -Scc echo "Creating output directory..." mkdir -p "$outFolder" echo "Building ISO..." cd "$buildFolder/releng" sudo mkarchiso -v -w "$buildFolder" -o "$outFolder" "$PWD" # Save package list echo "Saving package list..." rename=$(date +%Y-%m-%d) cp "$buildFolder/iso/arch/pkglist.x86_64.txt" "$outFolder/archlinux-$rename-pkglist.txt" echo "Cleaning build environment..." [ -d "$buildFolder" ] && sudo rm -rf "$buildFolder" sudo chown -R $USER:$GROUP "$outFolder" echo "################################################################" echo "DONE" echo "Check your out folder: $outFolder" echo "################################################################"