arch/build-archiso.sh
2021-06-11 14:20:12 +02:00

69 lines
1.9 KiB
Bash
Executable File

#!/bin/bash
#
# https://wiki.archlinux.org/index.php/Archiso#Prepare_a_custom_profile
#
# TODO: set custom welcome message in /etc/motd
#
BUILD_DIR=./archlive
PKGS=()
PKGS+=('de-p1st-keyboard') # german keyboard
PKGS+=('de-p1st-nano') # syntax hilighting in nano
PKGS+=('de-p1st-screen') # longer scrollback history in screen
PKGS+=('de-p1st-pacman') # [de-p1st] mirror enabled
PKGS+=('de-p1st-installer') # de-p1st-installer script
################################
function isEmptyDir() {
if [ -n "$(find "$DIR_TO_CHECK" -maxdepth 0 -type d -empty 2>/dev/null)" ]; then
# "Empty directory"
return 0
else
# echo "Not empty or NOT a directory"
return 1
fi
}
if [ -d "${BUILD_DIR}" ]; then
if ! isEmptyDir "${BUILD_DIR}"; then
if [ "$1" = "clean" ]; then
sudo rm -r "${BUILD_DIR}" || exit $?
mkdir -p "${BUILD_DIR}" || exit $?
else
echo "BUILD_DIR not empty";
echo "Run '$0 clean' to start a clean ISO build."
exit 1;
fi
fi # else: BUILD_DIR exists and is empty :)
elif ! mkdir -p "${BUILD_DIR}"; then
echo "Could not create BUILD_DIR";
exit 1;
fi
# The releng profile is used to create the official monthly installation ISO
PROFILE=/usr/share/archiso/configs/releng/
if [ ! -d "${PROFILE}" ]; then
echo "Installing dependency 'archiso' with sudo ..."
sudo pacman -S --needed archiso || exit $?
fi
cp -r "$PROFILE" "$BUILD_DIR"/profile || exit $?
# extend the builder's pacman.conf (add de-p1st mirrors)
# https://wiki.archlinux.org/index.php/Archiso#Custom_local_repository
cat "pkg/de-p1st-pacman/pacman.d/de-p1st" >>"$BUILD_DIR"/profile/pacman.conf || exit $?
for PKG in "${PKGS[@]}"; do
echo "${PKG}" >>"${BUILD_DIR}"/profile/packages.x86_64
done
###
mkdir "${BUILD_DIR}/work_dir" && mkdir "${BUILD_DIR}/out_dir" || exit $?
echo "running 'sudo mkarchiso' ..."
sudo mkarchiso -v -w "${BUILD_DIR}/work_dir" -o "${BUILD_DIR}/out_dir" "${BUILD_DIR}/profile" || exit $?