Compare commits

..

No commits in common. "f9c0852d02cc49ff54fc0f8dac800457e928a648" and "edb775ae1efeb10cfcd0b547d9337011ab3b3868" have entirely different histories.

27 changed files with 144 additions and 224 deletions

View file

@ -6,7 +6,6 @@ On the road to 2024.09:
- switched name scheme for UKI images
- switched TRIGGERS to an array
- reordered config arrays
- switched to use more arrays to simplify and cleanup code
setup:
- switched to new limine 8.0 config layout (issue #4)
- switched to mkinitcpio uki generation (issue #3)

View file

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

View file

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

View file

@ -36,16 +36,21 @@ _prepare_pacman() {
fi
_pacman_keyring
${_PACMAN} -Sy
#shellcheck disable=SC2086,SC2068
pacman -Sy ${_PACMAN_CONF} --noconfirm --noprogressbar ${_KEYRING[@]} || exit 1
_KEYRING="archlinux-keyring"
[[ "${_RUNNING_ARCH}" == "aarch64" ]] && _KEYRING="${_KEYRING} archlinuxarm-keyring"
#shellcheck disable=SC2086
pacman -Sy ${_PACMAN_CONF} --noconfirm --noprogressbar ${_KEYRING} || exit 1
}
# package_installation
_install_packages() {
. /etc/archboot/defaults
# add packages from 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
#shellcheck disable=SC2068
${_PACMAN} -S ${_PACKAGES[@]}
#shellcheck disable=SC2086
${_PACMAN} -S ${_PACKAGES}
}
_post_installation() {

View file

@ -30,7 +30,6 @@ for i in ${_SERVER_ARCH}; do
# update container to latest packages
systemd-nspawn -q -D "${i}" pacman --noconfirm -Syu
rg -o 'upgraded (.*) \(' -r '$1' "${i}"/var/log/pacman.log > upgrade-"${i}".log
#shellcheck disable=SC2068
for k in ${_TRIGGER[@]}; do
# if trigger successful, release new image to server
if rg -qw "${k}" upgrade-"${i}".log; then

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

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

View file

@ -4,8 +4,8 @@
_pacman() {
#shellcheck disable=SC2086,SC2068
${_PACMAN} -Sy ${_PACKAGES[@]} &>"${_LOG}" && : > /tmp/.pacman-success
#shellcheck disable=SC2086,SC2069
${_PACMAN} -Sy ${_PACKAGES} &>"${_LOG}" && : > /tmp/.pacman-success
rm /.archboot
}
@ -16,8 +16,7 @@ _run_pacman(){
[[ ! -d "${_DESTDIR}${_PACMAN_LIB}" ]] && mkdir -p "${_DESTDIR}${_PACMAN_LIB}"
: > /.archboot
_pacman &
#shellcheck disable=SC2116,SC2068
_progress_wait "0" "99" "Installing package(s):\n$(echo ${_PACKAGES[@]})..." "2"
_progress_wait "0" "99" "Installing package(s):\n${_PACKAGES}..." "2"
# pacman finished, display scrollable output
if [[ -e "/tmp/.pacman-success" ]]; then
_progress "100" "Package installation complete." 6 75
@ -62,13 +61,16 @@ _run_autoconfig() {
_install_packages() {
_destdir_mounts || return 1
_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
#shellcheck disable=SC2116,SC2068
_dialog --title " Summary " --yesno "Next step will install the following packages for a minimal system:\n$(echo ${_PACKAGES[@]})\n\nYou can watch the progress on your ${_VC} console." 9 75 || return 1
#shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_PACKAGES[@]})..." 8 75 0
# fix double spaces
_PACKAGES="${_PACKAGES// / }"
_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
_NEXTITEM=3
_chroot_mount

View file

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

View file

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

View file

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

View file

@ -59,7 +59,7 @@ _prepare_initramfs() {
_systemd_ukify() {
echo "Generating ${_ARCH} UKI image..."
[[ -n "${_INTEL_UCODE}" ]] && _INTEL_UCODE="--initrd=/${_INTEL_UCODE}"
[[ -n "/${_INTEL_UCODE}" ]] && _INTEL_UCODE="--initrd=/${_INTEL_UCODE}"
_AMD_UCODE="--initrd=/${_AMD_UCODE}"
#shellcheck disable=SC2086
/usr/lib/systemd/ukify build --linux="${_KERNEL}" \

View file

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

View file

@ -26,15 +26,19 @@ EOF
done
}
_install_gnome() {
_prepare_gnome() {
if ! [[ -e /usr/bin/gnome-session ]]; then
#shellcheck disable=SC2086,SC2068
_prepare_graphic ${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES[@]} ${_GNOME_PACKAGES[@]}
_prepare_graphic "${_PACKAGES}"
fi
_prepare_browser >"${_LOG}" 2>&1
_configure_gnome >"${_LOG}" 2>&1
}
_install_gnome() {
_PACKAGES="${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES} ${_GNOME_PACKAGES}"
_prepare_gnome
}
_start_gnome() {
_progress "100" "Launching GNOME Wayland now, logging is done on ${_LOG}..."
sleep 2

View file

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

View file

@ -61,15 +61,20 @@ EOF
cp /etc/xdg/autostart/archboot.desktop /usr/share/applications/
}
_install_plasma() {
_prepare_plasma() {
if ! [[ -e /usr/bin/startplasma-x11 ]]; then
#shellcheck disable=SC2086,SC2068
_prepare_graphic ${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES[@]} ${_PLASMA_PACKAGES[@]}
_prepare_graphic "${_PACKAGES}"
fi
_prepare_browser >"${_LOG}" 2>&1
_configure_plasma >"${_LOG}" 2>&1
}
_install_plasma() {
_PACKAGES="${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES} ${_PLASMA_PACKAGES}"
_prepare_plasma
}
_start_plasma() {
_progress "100" "Launching Plasma/KDE Wayland now, logging is done on ${_LOG}..."
sleep 2

View file

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

View file

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