67 lines
2 KiB
Bash
Executable file
67 lines
2 KiB
Bash
Executable file
#!/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 "################################################################"
|