This commit is contained in:
Daniel Langbein 2021-06-11 14:20:12 +02:00
parent 9c8e3df090
commit e7f41bbb60

View File

@ -2,35 +2,50 @@
# #
# https://wiki.archlinux.org/index.php/Archiso#Prepare_a_custom_profile # https://wiki.archlinux.org/index.php/Archiso#Prepare_a_custom_profile
# #
# Arch installer with some additional packages: # TODO: set custom welcome message in /etc/motd
# -> TODO: set custom welcome message in /etc/motd
# -> de-p1st-installer
# -> [de-p1st] repository enabled in pacman.conf
# -> german keyboard
# -> nano with syntax highlighting
# -> git
# -> screen with long scrollback history configured
# #
BUILD_DIR=./archlive BUILD_DIR=./archlive
PKGS=('git' 'de-p1st-keyboard' 'de-p1st-nano' 'de-p1st-screen' 'de-p1st-pacman' 'de-p1st-systemd' 'de-p1st-installer')
PACMAN_CFG_ADDITION='pkg/de-p1st-pacman/pacman.d/de-p1st' # will be used to extend the builder's pacman.conf
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
################################ ################################
if [ "$1" = "clean" ] ; then function isEmptyDir() {
sudo rm -r "${BUILD_DIR}" || exit $? if [ -n "$(find "$DIR_TO_CHECK" -maxdepth 0 -type d -empty 2>/dev/null)" ]; then
elif [ -d "${BUILD_DIR}" ] ; then # "Empty directory"
echo "Build dir does already exist and may not be empty!" return 0
echo "Run '$0 clean' to start a clean ISO build." else
exit 1 # 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 fi
mkdir "$BUILD_DIR" || exit $?
# The releng profile is used to create the official monthly installation ISO # The releng profile is used to create the official monthly installation ISO
PROFILE=/usr/share/archiso/configs/releng/ PROFILE=/usr/share/archiso/configs/releng/
if [ ! -d "${PROFILE}" ] ; then if [ ! -d "${PROFILE}" ]; then
echo "Installing dependency 'archiso' with sudo ..." echo "Installing dependency 'archiso' with sudo ..."
sudo pacman -S --needed archiso || exit $? sudo pacman -S --needed archiso || exit $?
fi fi
@ -39,10 +54,10 @@ cp -r "$PROFILE" "$BUILD_DIR"/profile || exit $?
# extend the builder's pacman.conf (add de-p1st mirrors) # extend the builder's pacman.conf (add de-p1st mirrors)
# https://wiki.archlinux.org/index.php/Archiso#Custom_local_repository # https://wiki.archlinux.org/index.php/Archiso#Custom_local_repository
cat "${PACMAN_CFG_ADDITION}" >> "$BUILD_DIR"/profile/pacman.conf || exit $? cat "pkg/de-p1st-pacman/pacman.d/de-p1st" >>"$BUILD_DIR"/profile/pacman.conf || exit $?
for PKG in "${PKGS[@]}"; do for PKG in "${PKGS[@]}"; do
echo "${PKG}" >> "${BUILD_DIR}"/profile/packages.x86_64 echo "${PKG}" >>"${BUILD_DIR}"/profile/packages.x86_64
done done
### ###