#!/bin/bash # # Default variables # UPGRADE_PACKAGES=false SCRIPT_NAME="$(basename -- "$0")" SCRIPT_DIR="$( cd -- "$(dirname "$0")" >/dev/null 2>&1 || exit 1 pwd -P )" function _acpib() { acpi -b | grep -Fv ' 0%' } function is_laptop() { [[ $(_acpib | wc -l) -gt 0 ]] && return 0 || return 1 } function usage() { echo "Usage: $SCRIPT_NAME [OPTIONS]" echo echo "Options:" echo " -h Display help." echo " -u Upgrade existing packages." exit 0 } while getopts ":uh" arg; do case $arg in h) usage ;; u) UPGRADE_PACKAGES=true ;; :) echo "$0: Must supply an argument to -$OPTARG." >&2 exit 1 ;; ?) echo "Invalid option: -${OPTARG}." echo usage exit 2 ;; esac done YAY_ARGS="--aur --answerdiff NotInstalled --answeredit None --answerclean All --answerupgrade None" ID_LIKE="$(grep ID_LIKE= /dev/null { echo "[X11]" echo "DisplayCommand=/usr/share/sddm/scripts/Xsetup" } | sudo tee "$sddm_config_dir/xsetup" >/dev/null } function setup_arch_with_pamac() { local targets=("pacman-any") packages is_laptop && targets+=("pacman-laptop") packages="$(get_packages "${targets[@]}")" # shellcheck disable=SC2086 sudo pamac install --no-confirm $packages || return 1 } function setup_arch_with_yay() { local targets=("aur-any") packages is_laptop && targets+=("aur-laptop") while read -r package; do if pacman -Qs "^$package$" >/dev/null; then if $UPGRADE_PACKAGES; then echo "Package '$package' will be upgraded." else echo "Package '$package' already exists." continue fi else echo "Package '$package' will be installed." fi # shellcheck disable=SC2086 yay -S "$package" $YAY_ARGS || return 1 done <<<"$(get_packages "${targets[@]}")" } function setup_arch() { setup_arch_with_pamac || return 1 setup_arch_with_yay || return 2 configure_sddm || return 3 } echo "Setting up ${ID_LIKE^}-like OS." if [[ "$ID_LIKE" == "arch" ]]; then setup_arch else echo "ERROR: Unsupported system: ID_LIKE=$ID_LIKE" exit 2 fi echo "Setup finished."