#!/usr/bin/env bash # Install everything this host's manifest names. Safe to re-run: --needed and # apt's own idempotence mean already-installed packages are skipped. set -euo pipefail REPO="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)" HOST="${DOTFILES_HOST:-$(uname -n | tr '[:upper:]' '[:lower:]')}" P="${REPO}/packages" if [[ -f "${P}/${HOST}.pacman" ]]; then sudo pacman -S --needed --noconfirm - < "${P}/${HOST}.pacman" [[ -f "${P}/${HOST}.aur" ]] && paru -S --needed --noconfirm - < "${P}/${HOST}.aur" elif [[ -f "${P}/${HOST}.apt" ]]; then xargs -a "${P}/${HOST}.apt" sudo apt-get install -y else echo "pkg-restore: no manifest for '${HOST}' in ${P}" >&2; exit 1 fi if [[ -f "${P}/${HOST}.flatpak" ]] && command -v flatpak >/dev/null 2>&1; then flatpak remote-add --user --if-not-exists flathub \ https://dl.flathub.org/repo/flathub.flatpakrepo xargs -r -a "${P}/${HOST}.flatpak" flatpak install -y --user flathub fi