mirror of
https://codeberg.org/privacy1st/arch
synced 2024-12-23 01:16:04 +01:00
88 lines
3.3 KiB
Bash
Executable File
88 lines
3.3 KiB
Bash
Executable File
#!/bin/bash
|
||
|
||
BUILD_DIR=/out
|
||
|
||
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
|
||
|
||
ENABLE_SSH=true
|
||
SSH_PUB_KEY='ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAACAQCpgihAg8Qzu5q+AGXHLR7p+rrS1yB0KlZb/Y/EwZT15EhEtsUMqBMRiY0TdjKQU0broyygZnymccLmCXvihEgk3zk/hP8VEDmN5wmE2tRBPR4lSjo8E1R8N79G+gaFkwi93QYh57MsGfa9k4tvGrJy0yaD7GrPqtQf+IIuvV14WJQAqnikTdbFqRjk5JGearYLU7jSKa+9NmR7JQ9NExoyIPgmQ/pd0Xc2qt8k5UGfz3HM9MAmIVQ30whK6m1iYZ8nxEidHrfreQx8NOa7ujo4zQnV1NYvRUjObr/qyIhPU6DYLT2mVRNupQFKx6LI38O4U13heugUFqJ3zvog3aDsriFiv8jzJAJvWXx7Q3TqKhqiG9VTkwBw1NDbCAOXKiEdMfiCYbdCfpNgdepU75bMloJcSQQVUqoH2tQhSbwKLuRFgOnyaHpvWbieXBRcUnfG8gg4p4jqiwx5laweEeOIOD/i7G1Mjx7Dj2ctnT/ILat/xsf+Y0W4eJr3bc5L9ghgw6wsKbNSqwjFUCFcHcARK3gvSH+hO2/BpgMVoyvZjO5PNuUqfsZ7bIIs5cDdyB/ly3irKuaRz1+3x1x4gPgSiOcji7HxPwogzhPsyfoRLHNt9tJ5X4nF2Iz1M5RTJpbZCi6yEj+9Q85FVjD76BEWuZe18kRrwhuLf/XgKdF9tQ== openpgp:0xA8B75370'
|
||
|
||
################################
|
||
|
||
# Write-permission for user "build"
|
||
sudo chown "build:wheel" /out
|
||
|
||
function isEmptyDir() {
|
||
# arg $1: directory to check
|
||
|
||
if [ -z "$(find "${1}" -maxdepth 0 -type d -empty 2>/dev/null)" ]; then
|
||
# echo "Not empty or NOT a directory"
|
||
return 1
|
||
else
|
||
# "Empty directory"
|
||
return 0
|
||
fi
|
||
}
|
||
|
||
|
||
if [ -d "${BUILD_DIR}" ]; then
|
||
if ! isEmptyDir "${BUILD_DIR}"; then
|
||
if [ "$1" = "clean" ]; then
|
||
sudo rm -r "${BUILD_DIR}"/* || exit $?
|
||
else
|
||
echo "BUILD_DIR not empty: ${BUILD_DIR}";
|
||
echo "Run with argument 'clean' to clean up BUILD_DIR and then continue building the ISO."
|
||
exit 1;
|
||
fi
|
||
fi # else: BUILD_DIR exists and is empty :)
|
||
elif ! mkdir -p "${BUILD_DIR}"; then
|
||
echo "Could not create BUILD_DIR: ${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 "Dependency 'archiso' is missing. Please install this first!"
|
||
exit 1
|
||
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 $?
|
||
echo '[de-p1st]
|
||
SigLevel = Optional TrustAll
|
||
Server = https://arch.p1st.de' | sudo tee -a "$BUILD_DIR"/profile/pacman.conf || exit $?
|
||
|
||
for PKG in "${PKGS[@]}"; do
|
||
echo "${PKG}" >>"${BUILD_DIR}"/profile/packages.x86_64
|
||
done
|
||
|
||
# source: https://gitlab.archlinux.org/archlinux/archiso/-/blob/master/configs/releng/airootfs/etc/motd
|
||
echo 'To install [38;2;23;147;209mArch Linux[0m run the following command:
|
||
[35mde-p1st-installer[0m
|
||
|
||
|
||
|
||
For Wi-Fi, authenticate to the wireless network using the [35miwctl[0m utility.
|
||
For mobile broadband (WWAN) modems, connect with the [35mmmcli[0m utility.
|
||
Ethernet, WLAN and WWAN interfaces using DHCP should work automatically.
|
||
' > "${BUILD_DIR}"/profile/airootfs/etc/motd || exit $?
|
||
|
||
###
|
||
|
||
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 $?
|
||
|
||
sudo chown -R "build:wheel" /out/out_dir
|