make arrays for better reading

This commit is contained in:
Tobias Powalowski 2024-09-08 14:34:33 +02:00
parent edb775ae1e
commit 9074cc4c4a
24 changed files with 171 additions and 114 deletions

View file

@ -1,33 +1,82 @@
# Created by Tobias Powalowski <tpowa@archlinux.org> # Created by Tobias Powalowski <tpowa@archlinux.org>
# SPDX-License-Identifier: GPL-3.0-or-later # SPDX-License-Identifier: GPL-3.0-or-later
# packages to install (eg. firmware, kernel packages) # packages to install (eg. firmware, kernel packages)
_PACKAGES="base linux linux-firmware linux-firmware-marvell polkit" _PACKAGES=(
base
linux
linux-firmware
linux-firmware-marvell
polkit
)
# grub setup # grub setup
_GRUB_CONFIG="/usr/share/archboot/grub/archboot-main-grub.cfg" _GRUB_CONFIG="/usr/share/archboot/grub/archboot-main-grub.cfg"
_GRUB_BACKGROUND="/usr/share/archboot/grub/archboot-background.png" _GRUB_BACKGROUND="/usr/share/archboot/grub/archboot-background.png"
### Graphical environment defaults ### Graphical environment defaults
# ignore packages to upgrade before graphical startup eg. kernel and firmware # ignore packages to upgrade before graphical startup eg. kernel and firmware
_GRAPHIC_IGNORE="linux linux-firmware linux-firmware-marvell" _GRAPHIC_IGNORE=(
linux
linux-firmware
linux-firmware-marvell
)
# VNC password # VNC password
_VNC_PW="archboot" _VNC_PW="archboot"
### Standard Web Browser: chromium or firefox ### Standard Web Browser: chromium or firefox
_STANDARD_BROWSER="firefox" _STANDARD_BROWSER="firefox"
### GNOME defaults ### GNOME defaults
# GNOME packages # GNOME packages
_GNOME_PACKAGES="gnome-desktop-4 gnome-shell gnome-terminal gnome-control-center nautilus gvfs-smb gthumb file-roller gnome-keyring gedit" _GNOME_PACKAGES=(
file-roller
gedit
gnome-control-center
gnome-desktop-4
gnome-keyring
gnome-shell
gnome-terminal
gthumb
gvfs-smb
nautilus
)
### KDE/Plasma defaults ### KDE/Plasma defaults
# KDE/Plasma packages # KDE/Plasma packages
_PLASMA_PACKAGES="plasma-wayland-session plasma-desktop konsole kscreen kate dolphin powerdevil ark gwenview" _PLASMA_PACKAGES=(
ark
dolphin
gwenview
kate
konsole
kscreen
plasma-desktop
plasma-wayland-session
powerdevil
)
### SWAY defaults ### SWAY defaults
# Sway packages # Sway packages
_SWAY_PACKAGES="sway swaybg foot bemenu-wayland j4-dmenu-desktop wayvnc waybar ttf-font-awesome" _SWAY_PACKAGES=(
bemenu-wayland
foot
j4-dmenu-desktop
sway
swaybg
ttf-font-awesome
waybar
wayvnc
)
### XFCE defaults ### XFCE defaults
# Xfce packages # Xfce packages
_XFCE_PACKAGES="xfce4 breeze-icons gvfs-smb thunar-archive-plugin file-roller gnome-keyring mousepad ristretto" _XFCE_PACKAGES=(
breeze-icons
file-roller
gnome-keyring
gvfs-smb
mousepad
ristretto
thunar-archive-plugin
xfce4
)
### Custom Graphical defaults ### Custom Graphical defaults
# Custom packages # Custom packages
_CUSTOM_XORG="" _CUSTOM_XORG=()
_CUSTOM_WAYLAND="" _CUSTOM_WAYLAND=()
### server setup ### server setup
# release directory # release directory
_DIR="$(date +%Y.%m)" _DIR="$(date +%Y.%m)"

View file

@ -72,10 +72,8 @@ _enable_testing() {
_task_pacman_keyring_install() { _task_pacman_keyring_install() {
_pacman_keyring _pacman_keyring
_KEYRING="archlinux-keyring"
[[ "${_RUNNING_ARCH}" == "aarch64" ]] && _KEYRING="${_KEYRING} archlinuxarm-keyring"
#shellcheck disable=SC2086 #shellcheck disable=SC2086
pacman -Sy --noconfirm --noprogressbar ${_KEYRING} &>"${_LOG}" pacman -Sy --noconfirm --noprogressbar ${_KEYRING[@]} &>"${_LOG}"
rm /.archboot rm /.archboot
} }
_prepare_pacman() { _prepare_pacman() {

View file

@ -36,21 +36,16 @@ _prepare_pacman() {
fi fi
_pacman_keyring _pacman_keyring
${_PACMAN} -Sy ${_PACMAN} -Sy
_KEYRING="archlinux-keyring"
[[ "${_RUNNING_ARCH}" == "aarch64" ]] && _KEYRING="${_KEYRING} archlinuxarm-keyring"
#shellcheck disable=SC2086 #shellcheck disable=SC2086
pacman -Sy ${_PACMAN_CONF} --noconfirm --noprogressbar ${_KEYRING} || exit 1 pacman -Sy ${_PACMAN_CONF} --noconfirm --noprogressbar ${_KEYRING[@]} || exit 1
} }
# package_installation # package_installation
_install_packages() { _install_packages() {
# add packages from Archboot defaults . /etc/archboot/defaults
_PACKAGES="$(rg -o '^_PACKAGES="(.*)"' -r '$1' /etc/archboot/defaults)"
# fallback if _PACKAGES is empty
[[ -z "${_PACKAGES}" ]] && _PACKAGES="base linux linux-firmware"
_auto_packages _auto_packages
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -S ${_PACKAGES} ${_PACMAN} -S ${_PACKAGES[@]}
} }
_post_installation() { _post_installation() {

View file

@ -26,7 +26,7 @@ while [ $# -gt 0 ]; do
-gnome|--gnome) _L_GNOME="1";; -gnome|--gnome) _L_GNOME="1";;
-plasma|--plasma) _L_PLASMA="1" ;; -plasma|--plasma) _L_PLASMA="1" ;;
-custom-xorg|--custom-xorg) _CUSTOM_X="1" ;; -custom-xorg|--custom-xorg) _CUSTOM_X="1" ;;
-custom-wayland|--custom-wayland) _CUSTOM_WAYLAND="1" ;; -custom-wayland|--custom-wayland) _CUSTOM_WL="1" ;;
-full-system|--full-system) _FULL_SYSTEM="1" ;; -full-system|--full-system) _FULL_SYSTEM="1" ;;
-h|--h|-help|--help|?) _usage ;; -h|--h|-help|--help|?) _usage ;;
*) _usage ;; *) _usage ;;

View file

@ -6,14 +6,29 @@ _AMD_UCODE="boot/amd-ucode.img"
_CACHEDIR="/var/cache/pacman/pkg" _CACHEDIR="/var/cache/pacman/pkg"
_CONFIG_DIR="/etc/archboot" _CONFIG_DIR="/etc/archboot"
_DLPROG="curl -L -s" _DLPROG="curl -L -s"
_FIX_PACKAGES="libelf libevent talloc gcc-libs glibc glib2 icu pcre2 nss terminus-font" _FIX_PACKAGES=(
libelf
libevent
talloc
gcc-libs
glibc
glib2
icu
pcre2
nss
terminus-font
)
_INTEL_UCODE="boot/intel-ucode.img" _INTEL_UCODE="boot/intel-ucode.img"
_KERNELPKG="linux" _KERNELPKG="linux"
_KEYRING="archlinux-keyring" _KEYRING=(archlinux-keyring)
_LABEL="Exit" _LABEL="Exit"
_LOCAL_DB="${_CACHEDIR}/archboot.db" _LOCAL_DB="${_CACHEDIR}/archboot.db"
_LOG="/dev/tty11" _LOG="/dev/tty11"
_MAN_INFO_PACKAGES="man-db man-pages texinfo" _MAN_INFO_PACKAGES=(
man-db
man-pages
texinfo
)
_MEM_TOTAL="$(rg -o 'MemTotal.* (\d+)' -r '$1' /proc/meminfo)" _MEM_TOTAL="$(rg -o 'MemTotal.* (\d+)' -r '$1' /proc/meminfo)"
_NO_LOG="/dev/null" _NO_LOG="/dev/null"
_OSREL="/usr/share/archboot/base/etc/os-release" _OSREL="/usr/share/archboot/base/etc/os-release"
@ -25,7 +40,12 @@ _RSYNC="rsync -a -q --delete --delete-delay"
_RUNNING_ARCH="$(uname -m)" _RUNNING_ARCH="$(uname -m)"
_RUNNING_KERNEL="$(uname -r)" _RUNNING_KERNEL="$(uname -r)"
_SPLASH="/usr/share/archboot/uki/archboot-background.bmp" _SPLASH="/usr/share/archboot/uki/archboot-background.bmp"
_STANDARD_PACKAGES="gparted xorg-xhost mtools noto-fonts" _STANDARD_PACKAGES=(
gparted
xorg-xhost
mtools
noto-fonts
)
_VNC_PACKAGE="tigervnc" _VNC_PACKAGE="tigervnc"
_WAYLAND_PACKAGE="egl-wayland" _WAYLAND_PACKAGE="egl-wayland"
_XORG_PACKAGE="xorg" _XORG_PACKAGE="xorg"
@ -36,7 +56,7 @@ _VC_NUM="${_LOG/\/dev\/tty/}"
_VC="VC${_VC_NUM}" _VC="VC${_VC_NUM}"
if echo "${_BASENAME}" | rg -qw aarch64; then if echo "${_BASENAME}" | rg -qw aarch64; then
_ARCHBOOT="archboot-arm" _ARCHBOOT="archboot-arm"
_KEYRING="${_KEYRING} archlinuxarm-keyring" _KEYRING+="archlinuxarm-keyring"
_ARCH="aarch64" _ARCH="aarch64"
elif echo "${_BASENAME}" | rg -qw riscv64; then elif echo "${_BASENAME}" | rg -qw riscv64; then
_ARCHBOOT="archboot-riscv" _ARCHBOOT="archboot-riscv"

View file

@ -95,7 +95,7 @@ _prepare_pacman() {
rm -f "${_PACMAN_LIB}"/sync/archboot.db rm -f "${_PACMAN_LIB}"/sync/archboot.db
echo "Updating Arch Linux keyring..." echo "Updating Arch Linux keyring..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
pacman -Sy --config ${_PACMAN_CONF} --noconfirm --noprogressbar ${_KEYRING} &>"${_NO_LOG}" pacman -Sy --config ${_PACMAN_CONF} --noconfirm --noprogressbar ${_KEYRING[@]} &>"${_NO_LOG}"
} }
#shellcheck disable=SC2120 #shellcheck disable=SC2120
@ -160,28 +160,28 @@ _install_base_packages() {
_MKINITCPIO=initramfs _MKINITCPIO=initramfs
fi fi
if [[ "${2}" == "use_binfmt" ]]; then if [[ "${2}" == "use_binfmt" ]]; then
echo "Downloading ${_KEYRING} ${_PACKAGES} to ${1}..." echo "Downloading ${_KEYRING[@]} ${_PACKAGES[@]} to ${1}..."
if rg -qw 'archboot' /etc/hostname; then if rg -qw 'archboot' /etc/hostname; then
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Syw ${_KEYRING} ${_PACKAGES} ${_PACMAN_DEFAULTS} \ ${_PACMAN} -Syw ${_KEYRING[@]} ${_PACKAGES[@]} ${_PACMAN_DEFAULTS} \
${_PACMAN_DB} &>"${_LOG}" || exit 1 ${_PACMAN_DB} &>"${_LOG}" || exit 1
else else
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Syw ${_KEYRING} ${_PACKAGES} ${_PACMAN_DEFAULTS} \ ${_PACMAN} -Syw ${_KEYRING[@]} ${_PACKAGES[@]} ${_PACMAN_DEFAULTS} \
${_PACMAN_DB} &>"${_NO_LOG}" || exit 1 ${_PACMAN_DB} &>"${_NO_LOG}" || exit 1
fi fi
fi fi
echo "Installing ${_KEYRING} ${_PACKAGES} to ${1}..." echo "Installing ${_KEYRING[@]} ${_PACKAGES[@]} to ${1}..."
if rg -qw 'archboot' /etc/hostname; then if rg -qw 'archboot' /etc/hostname; then
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Sy --assume-installed ${_MKINITCPIO} ${_KEYRING} ${_PACKAGES} \ ${_PACMAN} -Sy --assume-installed ${_MKINITCPIO} ${_KEYRING[@]} ${_PACKAGES[@]} \
${_PACMAN_DEFAULTS} &>"${_LOG}" || exit 1 ${_PACMAN_DEFAULTS} &>"${_LOG}" || exit 1
echo "Downloading mkinitcpio to ${1}..." echo "Downloading mkinitcpio to ${1}..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Syw mkinitcpio ${_PACMAN_DEFAULTS} >"${_LOG}" 2>&1 || exit 1 ${_PACMAN} -Syw mkinitcpio ${_PACMAN_DEFAULTS} >"${_LOG}" 2>&1 || exit 1
else else
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Sy --assume-installed ${_MKINITCPIO} ${_KEYRING} ${_PACKAGES} \ ${_PACMAN} -Sy --assume-installed ${_MKINITCPIO} ${_KEYRING[@]} ${_PACKAGES[@]} \
${_PACMAN_DEFAULTS} &>"${_NO_LOG}" || exit 1 ${_PACMAN_DEFAULTS} &>"${_NO_LOG}" || exit 1
echo "Downloading mkinitcpio to ${1}..." echo "Downloading mkinitcpio to ${1}..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
@ -199,16 +199,16 @@ _install_archboot() {
if rg -qw 'archboot' /etc/hostname; then if rg -qw 'archboot' /etc/hostname; then
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Sy ${_ARCHBOOT} ${_PACMAN_DEFAULTS} &>"${_LOG}" || exit 1 ${_PACMAN} -Sy ${_ARCHBOOT} ${_PACMAN_DEFAULTS} &>"${_LOG}" || exit 1
echo "Downloading ${_MAN_INFO_PACKAGES} to ${1}..." echo "Downloading ${_MAN_INFO_PACKAGES[@]} to ${1}..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Syw ${_MAN_INFO_PACKAGES} ${_PACMAN_DEFAULTS} \ ${_PACMAN} -Syw ${_MAN_INFO_PACKAGES[@]} ${_PACMAN_DEFAULTS} \
${_PACMAN_DB} &>"${_LOG}" || exit 1 ${_PACMAN_DB} &>"${_LOG}" || exit 1
else else
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Sy ${_ARCHBOOT} ${_PACMAN_DEFAULTS} &>"${_NO_LOG}" || exit 1 ${_PACMAN} -Sy ${_ARCHBOOT} ${_PACMAN_DEFAULTS} &>"${_NO_LOG}" || exit 1
echo "Downloading ${_MAN_INFO_PACKAGES} to ${1}..." echo "Downloading ${_MAN_INFO_PACKAGES[@]} to ${1}..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Syw ${_MAN_INFO_PACKAGES} ${_PACMAN_DEFAULTS} \ ${_PACMAN} -Syw ${_MAN_INFO_PACKAGES[@]} ${_PACMAN_DEFAULTS} \
${_PACMAN_DB} &>"${_NO_LOG}" || exit 1 ${_PACMAN_DB} &>"${_NO_LOG}" || exit 1
fi fi
# cleanup # cleanup

View file

@ -33,8 +33,8 @@ _geteditor() {
case $(cat "${_ANSWER}") in case $(cat "${_ANSWER}") in
"NANO") _EDITOR="nano" "NANO") _EDITOR="nano"
if ! [[ -f "${_DESTDIR}/usr/bin/nano" ]]; then if ! [[ -f "${_DESTDIR}/usr/bin/nano" ]]; then
_PACKAGES="nano" _PACKAGES=(nano)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
_dialog --no-mouse --title " Autoconfiguration " --infobox "Enable nano's syntax highlighting on installed system..." 3 70 _dialog --no-mouse --title " Autoconfiguration " --infobox "Enable nano's syntax highlighting on installed system..." 3 70
rg -q '^include' "${_DESTDIR}/etc/nanorc" || \ rg -q '^include' "${_DESTDIR}/etc/nanorc" || \
@ -44,8 +44,8 @@ _geteditor() {
;; ;;
"NEOVIM") _EDITOR="nvim" "NEOVIM") _EDITOR="nvim"
if ! [[ -f "${_DESTDIR}/usr/bin/nvim" ]]; then if ! [[ -f "${_DESTDIR}/usr/bin/nvim" ]]; then
_PACKAGES="neovim" _PACKAGES=(neovim)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
;; ;;

View file

@ -130,18 +130,18 @@ _abort_bcachefs_bootpart() {
} }
_uefi_common() { _uefi_common() {
_PACKAGES="" _PACKAGES=()
_DEV="" _DEV=""
_BOOTDEV="" _BOOTDEV=""
[[ -f "${_DESTDIR}/usr/bin/mkfs.vfat" ]] || _PACKAGES="${_PACKAGES} dosfstools" [[ -f "${_DESTDIR}/usr/bin/mkfs.vfat" ]] || _PACKAGES+="dosfstools"
[[ -f "${_DESTDIR}/usr/bin/efivar" ]] || _PACKAGES="${_PACKAGES} efivar" [[ -f "${_DESTDIR}/usr/bin/efivar" ]] || _PACKAGES+="efivar"
[[ -f "${_DESTDIR}/usr/bin/efibootmgr" ]] || _PACKAGES="${_PACKAGES} efibootmgr" [[ -f "${_DESTDIR}/usr/bin/efibootmgr" ]] || _PACKAGES+="efibootmgr"
if [[ -n "${_UEFI_SECURE_BOOT}" ]]; then if [[ -n "${_UEFI_SECURE_BOOT}" ]]; then
[[ -f "${_DESTDIR}/usr/bin/mokutil" ]] || _PACKAGES="${_PACKAGES} mokutil" [[ -f "${_DESTDIR}/usr/bin/mokutil" ]] || _PACKAGES+="mokutil"
[[ -f "${_DESTDIR}/usr/bin/sbsign" ]] || _PACKAGES="${_PACKAGES} sbsigntools" [[ -f "${_DESTDIR}/usr/bin/sbsign" ]] || _PACKAGES+="sbsigntools"
fi fi
if [[ -n "${_PACKAGES}" ]]; then if [[ -n "${_PACKAGES[@]}" ]]; then
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
# automounted /boot and ESP needs to be mounted first, trigger mount with ls # automounted /boot and ESP needs to be mounted first, trigger mount with ls
@ -244,8 +244,8 @@ _install_bootloader() {
fi fi
if [[ -n "${_UCODE}" ]]; then if [[ -n "${_UCODE}" ]]; then
if ! [[ -f "${_DESTDIR}/boot/${_UCODE}" ]]; then if ! [[ -f "${_DESTDIR}/boot/${_UCODE}" ]]; then
_PACKAGES="${_UCODE_PKG}" _PACKAGES=(${_UCODE_PKG})
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
fi fi

View file

@ -26,13 +26,13 @@ _grub_common_before() {
_common_bootloader_checks _common_bootloader_checks
_abort_bcachefs_bootpart || return 1 _abort_bcachefs_bootpart || return 1
if [[ ! -d "${_DESTDIR}/usr/lib/grub" ]]; then if [[ ! -d "${_DESTDIR}/usr/lib/grub" ]]; then
_PACKAGES="grub" _PACKAGES=(grub)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
if [[ ! -f "${_DESTDIR}/usr/share/grub/ter-u16n.pf2" ]]; then if [[ ! -f "${_DESTDIR}/usr/share/grub/ter-u16n.pf2" ]]; then
_PACKAGES=terminus-font _PACKAGES=(terminus-font)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
} }

View file

@ -3,8 +3,8 @@
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
_limine_common() { _limine_common() {
if [[ ! -f "${_DESTDIR}/usr/bin/limine" ]]; then if [[ ! -f "${_DESTDIR}/usr/bin/limine" ]]; then
_PACKAGES="limine" _PACKAGES=(limine)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
} }

View file

@ -3,8 +3,8 @@
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
_refind_uefi() { _refind_uefi() {
if [[ ! -f "${_DESTDIR}/usr/bin/refind-install" ]]; then if [[ ! -f "${_DESTDIR}/usr/bin/refind-install" ]]; then
_PACKAGES="refind" _PACKAGES=(refind)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
_dialog --no-mouse --infobox "Setting up rEFInd now..." 3 60 _dialog --no-mouse --infobox "Setting up rEFInd now..." 3 60

View file

@ -36,8 +36,8 @@ _uki_install() {
_uki_uefi() { _uki_uefi() {
if [[ ! -f "${_DESTDIR}/usr/lib/systemd/ukify" ]]; then if [[ ! -f "${_DESTDIR}/usr/lib/systemd/ukify" ]]; then
_PACKAGES="systemd-ukify" _PACKAGES=(systemd-ukify)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi fi
_uki_config _uki_config

View file

@ -30,11 +30,11 @@ fi
_PACMAN="pacman --root ${_DESTDIR} --cachedir=${_DESTDIR}${_CACHEDIR} --noconfirm" _PACMAN="pacman --root ${_DESTDIR} --cachedir=${_DESTDIR}${_CACHEDIR} --noconfirm"
_linux_firmware() { _linux_firmware() {
_PACKAGES="${_PACKAGES// linux-firmware / }" _PACKAGES[@]="${_PACKAGES[@]// linux-firmware / }"
#shellcheck disable=SC2013 #shellcheck disable=SC2013
for i in $(choose 0 </proc/modules); do for i in $(choose 0 </proc/modules); do
if modinfo "${i}" | rg -qw 'firmware:'; then if modinfo "${i}" | rg -qw 'firmware:'; then
_PACKAGES="${_PACKAGES} linux-firmware" _PACKAGES+="linux-firmware"
break break
fi fi
done done
@ -42,14 +42,14 @@ _linux_firmware() {
_marvell_firmware() { _marvell_firmware() {
_MARVELL="" _MARVELL=""
_PACKAGES="${_PACKAGES// linux-firmware-marvell / }" _PACKAGES[@]="${_PACKAGES[@]// linux-firmware-marvell / }"
for i in $(fd -t f . /lib/modules/"${_RUNNING_KERNEL}" | rg -w 'wireless/marvell'); do for i in $(fd -t f . /lib/modules/"${_RUNNING_KERNEL}" | rg -w 'wireless/marvell'); do
_MARVELL="${_MARVELL} $(basename "${i}" | sd '.ko.*$' '')" _MARVELL="${_MARVELL} $(basename "${i}" | sd '.ko.*$' '')"
done done
# check marvell modules if already loaded # check marvell modules if already loaded
for i in ${_MARVELL}; do for i in ${_MARVELL}; do
if lsmod | rg -qw "${i}"; then if lsmod | rg -qw "${i}"; then
_PACKAGES="${_PACKAGES} linux-firmware-marvell" _PACKAGES+="linux-firmware-marvell"
break break
fi fi
done done
@ -98,40 +98,40 @@ _local_pacman_conf() {
_auto_packages() { _auto_packages() {
# Add filesystem packages # Add filesystem packages
if ${_LSBLK} FSTYPE | rg -q 'bcachefs'; then if ${_LSBLK} FSTYPE | rg -q 'bcachefs'; then
! echo "${_PACKAGES}" | rg -qw 'bcachefs-tools' && _PACKAGES="${_PACKAGES} bcachefs-tools" ! echo "${_PACKAGES[@]}" | rg -qw 'bcachefs-tools' && _PACKAGES+="bcachefs-tools"
fi fi
if ${_LSBLK} FSTYPE | rg -q 'btrfs'; then if ${_LSBLK} FSTYPE | rg -q 'btrfs'; then
! echo "${_PACKAGES}" | rg -qw 'btrfs-progs' && _PACKAGES="${_PACKAGES} btrfs-progs" ! echo "${_PACKAGES[@]}" | rg -qw 'btrfs-progs' && _PACKAGES+="btrfs-progs"
fi fi
if ${_LSBLK} FSTYPE | rg -q 'ext'; then if ${_LSBLK} FSTYPE | rg -q 'ext'; then
! echo "${_PACKAGES}" | rg -qw 'e2fsprogs' && _PACKAGES="${_PACKAGES} e2fsprogs" ! echo "${_PACKAGES[@]}" | rg -qw 'e2fsprogs' && _PACKAGES+="e2fsprogs"
fi fi
if ${_LSBLK} FSTYPE | rg -q 'xfs'; then if ${_LSBLK} FSTYPE | rg -q 'xfs'; then
! echo "${_PACKAGES}" | rg -qw 'xfsprogs' && _PACKAGES="${_PACKAGES} xfsprogs" ! echo "${_PACKAGES[@]}" | rg -qw 'xfsprogs' && _PACKAGES+="xfsprogs"
fi fi
if ${_LSBLK} FSTYPE | rg -q 'vfat'; then if ${_LSBLK} FSTYPE | rg -q 'vfat'; then
! echo "${_PACKAGES}" | rg -qw 'dosfstools' && _PACKAGES="${_PACKAGES} dosfstools" ! echo "${_PACKAGES[@]}" | rg -qw 'dosfstools' && _PACKAGES+="dosfstools"
fi fi
# Add packages for complex blockdevices # Add packages for complex blockdevices
if ${_LSBLK} FSTYPE | rg -qw 'linux_raid_member'; then if ${_LSBLK} FSTYPE | rg -qw 'linux_raid_member'; then
! echo "${_PACKAGES}" | rg -qw 'mdadm' && _PACKAGES="${_PACKAGES} mdadm" ! echo "${_PACKAGES[@]}" | rg -qw 'mdadm' && _PACKAGES+="mdadm"
fi fi
if ${_LSBLK} FSTYPE | rg -qw 'LVM2_member'; then if ${_LSBLK} FSTYPE | rg -qw 'LVM2_member'; then
! echo "${_PACKAGES}" | rg -qw 'lvm2' && _PACKAGES="${_PACKAGES} lvm2" ! echo "${_PACKAGES[@]}" | rg -qw 'lvm2' && _PACKAGES+="lvm2"
fi fi
if ${_LSBLK} FSTYPE | rg -qw 'crypto_LUKS'; then if ${_LSBLK} FSTYPE | rg -qw 'crypto_LUKS'; then
! echo "${_PACKAGES}" | rg -qw 'cryptsetup' && _PACKAGES="${_PACKAGES} cryptsetup" ! echo "${_PACKAGES[@]}" | rg -qw 'cryptsetup' && _PACKAGES+="cryptsetup"
fi fi
#shellcheck disable=SC2010 #shellcheck disable=SC2010
# Add iwd, if wlan is detected # Add iwd, if wlan is detected
if fd . /sys/class/net | rg -q 'wlan'; then if fd . /sys/class/net | rg -q 'wlan'; then
! echo "${_PACKAGES}" | rg -qw 'iwd' && _PACKAGES="${_PACKAGES} iwd" ! echo "${_PACKAGES[@]}" | rg -qw 'iwd' && _PACKAGES+="iwd"
fi fi
# Add broadcom-wl, if module is detected # Add broadcom-wl, if module is detected
if lsmod | rg -qw 'wl'; then if lsmod | rg -qw 'wl'; then
! echo "${_PACKAGES}" | rg -qw 'broadcom-wl' && _PACKAGES="${_PACKAGES} broadcom-wl" ! echo "${_PACKAGES[@]}" | rg -qw 'broadcom-wl' && _PACKAGES+="broadcom-wl"
fi fi
rg -q '^FONT=ter' /etc/vconsole.conf && _PACKAGES="${_PACKAGES} terminus-font" rg -q '^FONT=ter' /etc/vconsole.conf && _PACKAGES+="terminus-font"
# only add firmware if already used # only add firmware if already used
_linux_firmware _linux_firmware
_marvell_firmware _marvell_firmware

View file

@ -141,16 +141,16 @@ _user_management() {
case $(cat "${_ANSWER}") in case $(cat "${_ANSWER}") in
"BASH") _SHELL="bash" "BASH") _SHELL="bash"
if ! [[ -f "${_DESTDIR}/usr/share/bash-completion/completions/arch" ]]; then if ! [[ -f "${_DESTDIR}/usr/share/bash-completion/completions/arch" ]]; then
_PACKAGES="bash-completion" _PACKAGES=(bash-completion)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " \ _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " \
--gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi ;; fi ;;
"ZSH") _SHELL="zsh" "ZSH") _SHELL="zsh"
if ! [[ -f "${_DESTDIR}/usr/bin/zsh" ]]; then if ! [[ -f "${_DESTDIR}/usr/bin/zsh" ]]; then
_PACKAGES="grml-zsh-config" _PACKAGES=(grml-zsh-config)
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " \ _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " \
--gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 --gauge "Installing package(s):\n${_PACKAGES[@]}..." 7 75 0
_pacman_error _pacman_error
fi ;; fi ;;
esac esac

View file

@ -5,7 +5,7 @@
_pacman() { _pacman() {
#shellcheck disable=SC2086,SC2069 #shellcheck disable=SC2086,SC2069
${_PACMAN} -Sy ${_PACKAGES} &>"${_LOG}" && : > /tmp/.pacman-success ${_PACMAN} -Sy ${_PACKAGES[@]} &>"${_LOG}" && : > /tmp/.pacman-success
rm /.archboot rm /.archboot
} }
@ -16,7 +16,7 @@ _run_pacman(){
[[ ! -d "${_DESTDIR}${_PACMAN_LIB}" ]] && mkdir -p "${_DESTDIR}${_PACMAN_LIB}" [[ ! -d "${_DESTDIR}${_PACMAN_LIB}" ]] && mkdir -p "${_DESTDIR}${_PACMAN_LIB}"
: > /.archboot : > /.archboot
_pacman & _pacman &
_progress_wait "0" "99" "Installing package(s):\n${_PACKAGES}..." "2" _progress_wait "0" "99" "Installing package(s):\n${_PACKAGES[@]}..." "2"
# pacman finished, display scrollable output # pacman finished, display scrollable output
if [[ -e "/tmp/.pacman-success" ]]; then if [[ -e "/tmp/.pacman-success" ]]; then
_progress "100" "Package installation complete." 6 75 _progress "100" "Package installation complete." 6 75
@ -61,16 +61,11 @@ _run_autoconfig() {
_install_packages() { _install_packages() {
_destdir_mounts || return 1 _destdir_mounts || return 1
_PACKAGES=""
# add packages from Archboot defaults # add packages from Archboot defaults
_PACKAGES="$(rg -o '^_PACKAGES="(.*)"' -r '$1' /etc/archboot/defaults)" . /etc/arhboot/defaults
# fallback if _PACKAGES is empty
[[ -z "${_PACKAGES}" ]] && _PACKAGES="base linux linux-firmware"
_auto_packages _auto_packages
# fix double spaces _dialog --title " Summary " --yesno "Next step will install the following packages for a minimal system:\n${_PACKAGES[@]}\n\nYou can watch the progress on your ${_VC} console." 9 75 || return 1
_PACKAGES="${_PACKAGES// / }" _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES[@]}..." 8 75 0
_dialog --title " Summary " --yesno "Next step will install the following packages for a minimal system:\n${_PACKAGES}\n\nYou can watch the progress on your ${_VC} console." 9 75 || return 1
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 8 75 0
_pacman_error || return 1 _pacman_error || return 1
_NEXTITEM=3 _NEXTITEM=3
_chroot_mount _chroot_mount

View file

@ -138,7 +138,7 @@ _run_autorun() {
_pacman_keyring _pacman_keyring
echo "Updating pacman keyring..." echo "Updating pacman keyring..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
pacman -Sy --noconfirm ${_KEYRING} &>"${_LOG}" pacman -Sy --noconfirm ${_KEYRING[@]} &>"${_LOG}"
chmod 755 /etc/archboot/run/autorun.sh chmod 755 /etc/archboot/run/autorun.sh
echo "Running custom autorun.sh..." echo "Running custom autorun.sh..."
/etc/archboot/run/./autorun.sh /etc/archboot/run/./autorun.sh

View file

@ -19,10 +19,10 @@ _download_packages() {
else else
_pacman_key_system _pacman_key_system
fi fi
_PACKAGES="${_KEYRING} ${_ARCHBOOT} ${_PACKAGES} ${_MAN_INFO_PACKAGES}" _PACKAGES+="${_KEYRING[@]} ${_ARCHBOOT} ${_MAN_INFO_PACKAGES[@]}"
echo "Downloading ${_PACKAGES} to ${1}..." echo "Downloading ${_PACKAGES[@]} to ${1}..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086
${_PACMAN} -Syw ${_PACKAGES} ${_PACMAN_DEFAULTS} ${_PACMAN_DB} &>"${_NO_LOG}" || exit 1 ${_PACMAN} -Syw ${_PACKAGES[@]} ${_PACMAN_DEFAULTS} ${_PACMAN_DB} &>"${_NO_LOG}" || exit 1
} }
_move_packages() { _move_packages() {

View file

@ -51,7 +51,7 @@ _fix_network "${1}"
echo "Installing pacman to container..." echo "Installing pacman to container..."
mkdir -p "${1}/${_PACMAN_ARCH}${_PACMAN_LIB}" mkdir -p "${1}/${_PACMAN_ARCH}${_PACMAN_LIB}"
#shellcheck disable=SC2086 #shellcheck disable=SC2086
systemd-nspawn -D "${1}" pacman --root "/${_PACMAN_ARCH}" -Sy awk ${_KEYRING} \ systemd-nspawn -D "${1}" pacman --root "/${_PACMAN_ARCH}" -Sy awk ${_KEYRING[@]} \
--ignore systemd-resolvconf --noconfirm &>"${_NO_LOG}" --ignore systemd-resolvconf --noconfirm &>"${_NO_LOG}"
_generate_keyring "${1}/${_PACMAN_ARCH}" || exit 1 _generate_keyring "${1}/${_PACMAN_ARCH}" || exit 1
_fix_network "${1}/${_PACMAN_ARCH}" _fix_network "${1}/${_PACMAN_ARCH}"

View file

@ -34,14 +34,14 @@ _run_pacman() {
} }
_update_packages() { _update_packages() {
_IGNORE="" _IGNORE=()
if [[ -n "${_GRAPHIC_IGNORE}" ]]; then if [[ -n "${_GRAPHIC_IGNORE[@]}" ]]; then
for i in ${_GRAPHIC_IGNORE}; do for i in ${_GRAPHIC_IGNORE[@]}; do
_IGNORE="${_IGNORE} --ignore ${i}" _IGNORE+="--ignore ${i}"
done done
fi fi
#shellcheck disable=SC2086 #shellcheck disable=SC2086
LC_ALL=C.UTF-8 pacman -Syu ${_IGNORE} --noconfirm &>"${_LOG}" LC_ALL=C.UTF-8 pacman -Syu ${_IGNORE[@]} --noconfirm &>"${_LOG}"
if [[ ! -e "/.full_system" ]]; then if [[ ! -e "/.full_system" ]]; then
_cleanup _cleanup
fi fi
@ -49,16 +49,16 @@ _IGNORE=""
} }
_install_fix_packages() { _install_fix_packages() {
_run_pacman "${_FIX_PACKAGES}" _run_pacman "${_FIX_PACKAGES[@]}"
rm /.archboot rm /.archboot
} }
_install_graphic() { _install_graphic() {
# check for qxl module # check for qxl module
if rg -q qxl /proc/modules; then if rg -q qxl /proc/modules; then
_GRAPHIC="${_GRAPHIC} xf86-video-qxl" _GRAPHIC+="xf86-video-qxl"
fi fi
_run_pacman "${_GRAPHIC}" _run_pacman "${_GRAPHIC[@]}"
rm /.archboot rm /.archboot
} }
@ -124,15 +124,15 @@ _prepare_browser() {
} }
_custom_wayland_xorg() { _custom_wayland_xorg() {
if [[ -n "${_CUSTOM_WAYLAND}" ]]; then if [[ -n "${_CUSTOM_WL}" ]]; then
echo -e "\e[1mStep 1/2:\e[m Installing custom wayland..." echo -e "\e[1mStep 1/2:\e[m Installing custom wayland..."
echo " This will need some time..." echo " This will need some time..."
_prepare_graphic "${_WAYLAND_PACKAGE} ${_CUSTOM_WAYLAND}" > "${_LOG}" 2>&1 _prepare_graphic "${_WAYLAND_PACKAGE} ${_CUSTOM_WAYLAND[@]}" > "${_LOG}" 2>&1
fi fi
if [[ -n "${_CUSTOM_X}" ]]; then if [[ -n "${_CUSTOM_X}" ]]; then
echo -e "\e[1mStep 1/2:\e[m Installing custom xorg..." echo -e "\e[1mStep 1/2:\e[m Installing custom xorg..."
echo " This will need some time..." echo " This will need some time..."
_prepare_graphic "${_XORG_PACKAGE} ${_CUSTOM_XORG}" > "${_LOG}" 2>&1 _prepare_graphic "${_XORG_PACKAGE} ${_CUSTOM_XORG[@]}" > "${_LOG}" 2>&1
fi fi
echo -e "\e[1mStep 2/2:\e[m Setting up browser...\e[m" echo -e "\e[1mStep 2/2:\e[m Setting up browser...\e[m"
command -v firefox &>"${_NO_LOG}" && _firefox_flags command -v firefox &>"${_NO_LOG}" && _firefox_flags

View file

@ -28,14 +28,14 @@ EOF
_prepare_gnome() { _prepare_gnome() {
if ! [[ -e /usr/bin/gnome-session ]]; then if ! [[ -e /usr/bin/gnome-session ]]; then
_prepare_graphic "${_PACKAGES}" _prepare_graphic "${_PACKAGES[@]}"
fi fi
_prepare_browser >"${_LOG}" 2>&1 _prepare_browser >"${_LOG}" 2>&1
_configure_gnome >"${_LOG}" 2>&1 _configure_gnome >"${_LOG}" 2>&1
} }
_install_gnome() { _install_gnome() {
_PACKAGES="${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES} ${_GNOME_PACKAGES}" _PACKAGES=(${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES[@]} ${_GNOME_PACKAGES[@]})
_prepare_gnome _prepare_gnome
} }

View file

@ -306,7 +306,7 @@ _new_environment() {
_full_system() { _full_system() {
_progress "1" "Refreshing pacman package database..." _progress "1" "Refreshing pacman package database..."
pacman -Sy >"${_LOG}" 2>&1 || exit 1 pacman -Sy >"${_LOG}" 2>&1 || exit 1
_PACKAGES="$(pacman -Qqn)" _PACKAGES=($(pacman -Qqn))
_COUNT=0 _COUNT=0
_PACKAGE_COUNT="$(pacman -Qqn | wc -l)" _PACKAGE_COUNT="$(pacman -Qqn | wc -l)"
if [[ "${_RUNNING_ARCH}" == "aarch64" ]]; then if [[ "${_RUNNING_ARCH}" == "aarch64" ]]; then
@ -314,7 +314,7 @@ _full_system() {
else else
_MKINITCPIO="initramfs" _MKINITCPIO="initramfs"
fi fi
for i in ${_PACKAGES}; do for i in ${_PACKAGES[@]}; do
if [[ "$((_COUNT*100/_PACKAGE_COUNT-4))" -gt 1 ]]; then if [[ "$((_COUNT*100/_PACKAGE_COUNT-4))" -gt 1 ]]; then
_progress "$((_COUNT*100/_PACKAGE_COUNT-4))" "Reinstalling all packages, installing ${i} now..." _progress "$((_COUNT*100/_PACKAGE_COUNT-4))" "Reinstalling all packages, installing ${i} now..."
fi fi

View file

@ -63,14 +63,14 @@ EOF
_prepare_plasma() { _prepare_plasma() {
if ! [[ -e /usr/bin/startplasma-x11 ]]; then if ! [[ -e /usr/bin/startplasma-x11 ]]; then
_prepare_graphic "${_PACKAGES}" _prepare_graphic "${_PACKAGES[@]}"
fi fi
_prepare_browser >"${_LOG}" 2>&1 _prepare_browser >"${_LOG}" 2>&1
_configure_plasma >"${_LOG}" 2>&1 _configure_plasma >"${_LOG}" 2>&1
} }
_install_plasma() { _install_plasma() {
_PACKAGES="${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES} ${_PLASMA_PACKAGES}" _PACKAGES=(${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES[@]} ${_PLASMA_PACKAGES[@]})
_prepare_plasma _prepare_plasma
} }

View file

@ -102,9 +102,9 @@ EOF
} }
_install_sway() { _install_sway() {
_PACKAGES="${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES} ${_SWAY_PACKAGES}" _PACKAGES=(${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES[@]} ${_SWAY_PACKAGES[@]})
if ! [[ -e /usr/bin/sway ]]; then if ! [[ -e /usr/bin/sway ]]; then
_prepare_graphic "${_PACKAGES}" _prepare_graphic "${_PACKAGES[@]}"
fi fi
_prepare_browser >"${_LOG}" 2>&1 _prepare_browser >"${_LOG}" 2>&1
_configure_sway >"${_LOG}" 2>&1 _configure_sway >"${_LOG}" 2>&1

View file

@ -3,7 +3,7 @@
# created by Tobias Powalowski <tpowa@archlinux.org> # created by Tobias Powalowski <tpowa@archlinux.org>
_install_xfce() { _install_xfce() {
if ! [[ -e /usr/bin/startxfce4 ]]; then if ! [[ -e /usr/bin/startxfce4 ]]; then
_prepare_graphic "${_XORG_PACKAGE} ${_VNC_PACKAGE} ${_STANDARD_PACKAGES} ${_XFCE_PACKAGES}" _prepare_graphic "${_XORG_PACKAGE} ${_VNC_PACKAGE} ${_STANDARD_PACKAGES[@]} ${_XFCE_PACKAGES[@]}"
fi fi
_prepare_browser >"${_LOG}" 2>&1 _prepare_browser >"${_LOG}" 2>&1
_configure_xfce >"${_LOG}" 2>&1 _configure_xfce >"${_LOG}" 2>&1