mirror of
https://gitlab.archlinux.org/tpowa/archboot.git
synced 2024-09-19 19:40:37 +02:00
Compare commits
13 commits
edb775ae1e
...
f9c0852d02
Author | SHA1 | Date | |
---|---|---|---|
|
f9c0852d02 | ||
|
7b3aea510a | ||
|
a7b6060ead | ||
|
e9c6749ca9 | ||
|
6b0e0a3c32 | ||
|
62852a2a59 | ||
|
2328da0f10 | ||
|
2286c1d3d9 | ||
|
5edffd9f33 | ||
|
df49d76887 | ||
|
41c5ee0c4b | ||
|
2f59ba99e0 | ||
|
9074cc4c4a |
27 changed files with 224 additions and 144 deletions
|
@ -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)
|
||||||
|
|
|
@ -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)"
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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 ;;
|
||||||
|
|
|
@ -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"
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
;;
|
;;
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
}
|
}
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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() {
|
||||||
|
|
|
@ -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}"
|
||||||
|
|
|
@ -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}" \
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in a new issue