Compare commits

...

13 commits

Author SHA1 Message Date
Tobias Powalowski
f9c0852d02 update CHANGELOG 2024-09-08 19:32:28 +02:00
Tobias Powalowski
7b3aea510a fix update runs 2024-09-08 18:26:48 +02:00
Tobias Powalowski
a7b6060ead fix syntax 2024-09-08 17:52:59 +02:00
Tobias Powalowski
e9c6749ca9 fix syntax 2024-09-08 17:42:00 +02:00
Tobias Powalowski
6b0e0a3c32 add linux-firmware and linux-firmware-marvell to container 2024-09-08 17:11:55 +02:00
Tobias Powalowski
62852a2a59 linux-firmware is autodetected 2024-09-08 17:01:59 +02:00
Tobias Powalowski
2328da0f10 fix package installation 2024-09-08 16:58:12 +02:00
Tobias Powalowski
2286c1d3d9 dialog syntax fixes 2024-09-08 16:40:46 +02:00
Tobias Powalowski
5edffd9f33 update CHANGELOG 2024-09-08 15:58:06 +02:00
Tobias Powalowski
df49d76887 fix syntax 2024-09-08 15:56:56 +02:00
Tobias Powalowski
41c5ee0c4b shellcheck fixes 2024-09-08 15:44:33 +02:00
Tobias Powalowski
2f59ba99e0 syntax fixes 2024-09-08 14:46:26 +02:00
Tobias Powalowski
9074cc4c4a make arrays for better reading 2024-09-08 14:34:33 +02:00
27 changed files with 224 additions and 144 deletions

View file

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

View file

@ -1,33 +1,80 @@
# 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
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" #shellcheck disable=SC2068
[[ "${_RUNNING_ARCH}" == "aarch64" ]] && _KEYRING="${_KEYRING} archlinuxarm-keyring" pacman -Sy --noconfirm --noprogressbar ${_KEYRING[@]} &>"${_LOG}"
#shellcheck disable=SC2086
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" #shellcheck disable=SC2086,SC2068
[[ "${_RUNNING_ARCH}" == "aarch64" ]] && _KEYRING="${_KEYRING} archlinuxarm-keyring" pacman -Sy ${_PACMAN_CONF} --noconfirm --noprogressbar ${_KEYRING[@]} || exit 1
#shellcheck disable=SC2086
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=SC2068
${_PACMAN} -S ${_PACKAGES} ${_PACMAN} -S ${_PACKAGES[@]}
} }
_post_installation() { _post_installation() {

View file

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

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=(
gcc-libs
glib2
glibc
icu
libelf
libevent
nss
pcre2
talloc
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
mtools
noto-fonts
xorg-xhost
)
_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

@ -94,8 +94,8 @@ _prepare_pacman() {
echo "Removing Archboot repository sync db..." echo "Removing Archboot repository sync db..."
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,SC2068
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
@ -159,29 +159,32 @@ _install_base_packages() {
else else
_MKINITCPIO=initramfs _MKINITCPIO=initramfs
fi fi
_PACKAGES+=(linux-firmware linux-firmware-marvell)
if [[ "${2}" == "use_binfmt" ]]; then if [[ "${2}" == "use_binfmt" ]]; then
echo "Downloading ${_KEYRING} ${_PACKAGES} to ${1}..." #shellcheck disable=SC2068,SC2145
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,SC2068
${_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,SC2068
${_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}..." #shellcheck disable=SC2068,SC2145
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,SC2068
${_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,SC2068
${_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 +202,18 @@ _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}..." #shellcheck disable=SC2145
#shellcheck disable=SC2086 echo "Downloading ${_MAN_INFO_PACKAGES[@]} to ${1}..."
${_PACMAN} -Syw ${_MAN_INFO_PACKAGES} ${_PACMAN_DEFAULTS} \ #shellcheck disable=SC2086,SC2068
${_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}..." #shellcheck disable=SC2145
#shellcheck disable=SC2086 echo "Downloading ${_MAN_INFO_PACKAGES[@]} to ${1}..."
${_PACMAN} -Syw ${_MAN_INFO_PACKAGES} ${_PACMAN_DEFAULTS} \ #shellcheck disable=SC2086,SC2068
${_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,9 @@ _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 #shellcheck disable=SC2116,2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_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 +45,9 @@ _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 #shellcheck disable=SC2116,2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_PACKAGES[@]})..." 7 75 0
_pacman_error _pacman_error
fi fi
;; ;;

View file

@ -130,18 +130,20 @@ _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
#shellcheck disable=SC2128
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 #shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_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 +246,10 @@ _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}" #shellcheck disable=SC2206
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 7 75 0 _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
_pacman_error _pacman_error
fi fi
fi fi

View file

@ -26,13 +26,15 @@ _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 #shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_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 #shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_PACKAGES[@]})..." 7 75 0
_pacman_error _pacman_error
fi fi
} }

View file

@ -3,8 +3,9 @@
# 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 #shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_PACKAGES[@]})..." 7 75 0
_pacman_error _pacman_error
fi fi
} }

View file

@ -3,8 +3,9 @@
# 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 #shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_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,9 @@ _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 #shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_PACKAGES[@]})..." 7 75 0
_pacman_error _pacman_error
fi fi
_uki_config _uki_config

View file

@ -30,26 +30,24 @@ 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 / }"
#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
} }
_marvell_firmware() { _marvell_firmware() {
_MARVELL="" _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+=($(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 +96,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,18 @@ _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)
#shellcheck disable=SC2116,SC2068
_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$(echo ${_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)
#shellcheck disable=SC2116,SC2068
_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$(echo ${_PACKAGES[@]})..." 7 75 0
_pacman_error _pacman_error
fi ;; fi ;;
esac esac

View file

@ -4,8 +4,8 @@
_pacman() { _pacman() {
#shellcheck disable=SC2086,SC2069 #shellcheck disable=SC2086,SC2068
${_PACMAN} -Sy ${_PACKAGES} &>"${_LOG}" && : > /tmp/.pacman-success ${_PACMAN} -Sy ${_PACKAGES[@]} &>"${_LOG}" && : > /tmp/.pacman-success
rm /.archboot rm /.archboot
} }
@ -16,7 +16,8 @@ _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" #shellcheck disable=SC2116,SC2068
_progress_wait "0" "99" "Installing package(s):\n$(echo ${_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 +62,13 @@ _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/archboot/defaults
# fallback if _PACKAGES is empty
[[ -z "${_PACKAGES}" ]] && _PACKAGES="base linux linux-firmware"
_auto_packages _auto_packages
# fix double spaces #shellcheck disable=SC2116,SC2068
_PACKAGES="${_PACKAGES// / }" _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
_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 #shellcheck disable=SC2116,SC2068
_run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n${_PACKAGES}..." 8 75 0 _run_pacman | _dialog --title " Logging to ${_VC} | ${_LOG} " --gauge "Installing package(s):\n$(echo ${_PACKAGES[@]})..." 8 75 0
_pacman_error || return 1 _pacman_error || return 1
_NEXTITEM=3 _NEXTITEM=3
_chroot_mount _chroot_mount

View file

@ -137,8 +137,8 @@ _run_autorun() {
echo "Waiting for pacman keyring..." echo "Waiting for pacman keyring..."
_pacman_keyring _pacman_keyring
echo "Updating pacman keyring..." echo "Updating pacman keyring..."
#shellcheck disable=SC2086 #shellcheck disable=SC2086,SC2068
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,12 @@ _download_packages() {
else else
_pacman_key_system _pacman_key_system
fi fi
_PACKAGES="${_KEYRING} ${_ARCHBOOT} ${_PACKAGES} ${_MAN_INFO_PACKAGES}" #shellcheck disable=SC2206
echo "Downloading ${_PACKAGES} to ${1}..." _PACKAGES+=(${_KEYRING[@]} ${_ARCHBOOT} ${_MAN_INFO_PACKAGES[@]})
#shellcheck disable=SC2086 #shellcheck disable=SC2145
${_PACMAN} -Syw ${_PACKAGES} ${_PACMAN_DEFAULTS} ${_PACMAN_DB} &>"${_NO_LOG}" || exit 1 echo "Downloading ${_PACKAGES[@]} to ${1}..."
#shellcheck disable=SC2086,SC2068
${_PACMAN} -Syw ${_PACKAGES[@]} ${_PACMAN_DEFAULTS} ${_PACMAN_DB} &>"${_NO_LOG}" || exit 1
} }
_move_packages() { _move_packages() {

View file

@ -50,8 +50,8 @@ _fix_network "${1}"
# update container to latest packages # update container to latest packages
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=SC2068
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

@ -59,7 +59,7 @@ _prepare_initramfs() {
_systemd_ukify() { _systemd_ukify() {
echo "Generating ${_ARCH} UKI image..." 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}" _AMD_UCODE="--initrd=/${_AMD_UCODE}"
#shellcheck disable=SC2086 #shellcheck disable=SC2086
/usr/lib/systemd/ukify build --linux="${_KERNEL}" \ /usr/lib/systemd/ukify build --linux="${_KERNEL}" \

View file

@ -23,7 +23,8 @@ _cleanup() {
} }
_run_pacman() { _run_pacman() {
for i in ${1}; do #shellcheck disable=2068
for i in $@; do
#shellcheck disable=SC2086 #shellcheck disable=SC2086
LC_ALL=C.UTF-8 pacman -Sy ${i} --noconfirm &>"${_LOG}" LC_ALL=C.UTF-8 pacman -Sy ${i} --noconfirm &>"${_LOG}"
if [[ ! -e "/.full_system" ]]; then if [[ ! -e "/.full_system" ]]; then
@ -34,14 +35,16 @@ _run_pacman() {
} }
_update_packages() { _update_packages() {
_IGNORE="" _IGNORE=()
if [[ -n "${_GRAPHIC_IGNORE}" ]]; then if [[ -n "${_GRAPHIC_IGNORE}" ]]; then
for i in ${_GRAPHIC_IGNORE}; do #shellcheck disable=SC2068
_IGNORE="${_IGNORE} --ignore ${i}" for i in ${_GRAPHIC_IGNORE[@]}; do
#shellcheck disable=SC2206
_IGNORE+=(--ignore ${i})
done done
fi fi
#shellcheck disable=SC2086 #shellcheck disable=SC2086,SC2068
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,23 +52,26 @@ _IGNORE=""
} }
_install_fix_packages() { _install_fix_packages() {
_run_pacman "${_FIX_PACKAGES}" #shellcheck disable=SC2068
_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}" #shellcheck disable=SC2068
_run_pacman ${_GRAPHIC[@]}
rm /.archboot rm /.archboot
} }
_prepare_graphic() { _prepare_graphic() {
# fix libs first, then install packages from defaults # fix libs first, then install packages from defaults
_GRAPHIC="${1}" #shellcheck disable=SC2206
_GRAPHIC=($@)
if [[ ! -e "/.full_system" ]]; then if [[ ! -e "/.full_system" ]]; then
_progress "1" "Removing firmware files..." _progress "1" "Removing firmware files..."
rm -rf /usr/lib/firmware rm -rf /usr/lib/firmware
@ -124,15 +130,17 @@ _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 #shellcheck disable=SC2068,SC2086
_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 #shellcheck disable=SC2068,SC2086
_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

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

View file

@ -306,7 +306,8 @@ _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)" #shellcheck disable=SC2207
_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 +315,8 @@ _full_system() {
else else
_MKINITCPIO="initramfs" _MKINITCPIO="initramfs"
fi fi
for i in ${_PACKAGES}; do #shellcheck disable=SC2068
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

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

View file

@ -102,9 +102,9 @@ EOF
} }
_install_sway() { _install_sway() {
_PACKAGES="${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES} ${_SWAY_PACKAGES}"
if ! [[ -e /usr/bin/sway ]]; then if ! [[ -e /usr/bin/sway ]]; then
_prepare_graphic "${_PACKAGES}" #shellcheck disable=SC2086,SC2068
_prepare_graphic ${_WAYLAND_PACKAGE} ${_STANDARD_PACKAGES[@]} ${_SWAY_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,8 @@
# 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}" #shellcheck disable=SC2086,SC2068
_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