#!/usr/bin/env bash set -euo pipefail # Install paru on Arch-based systems, then clean cache. if [[ "$(id -u)" -eq 0 ]]; then echo "Please run this script as a normal user, not root." exit 1 fi if [[ "${1:-}" == "--noconfirm" ]]; then confirm_flags=(--noconfirm) else confirm_flags=() fi if ! command -v pacman >/dev/null 2>&1; then echo "This script requires pacman. Are you on Arch or an Arch-based distro?" exit 1 fi if command -v paru >/dev/null 2>&1; then echo "paru is already installed." else echo "Installing required packages..." sudo pacman -S --needed "${confirm_flags[@]}" base-devel git tmpdir="$(mktemp -d)" trap 'rm -rf "$tmpdir"' EXIT echo "Cloning paru into $tmpdir..." git clone https://aur.archlinux.org/paru.git "$tmpdir/paru" cd "$tmpdir/paru" echo "Building and installing paru..." makepkg -si "${confirm_flags[@]}" fi echo "Cleaning paru cache..." paru -Scc "${confirm_flags[@]}" || true echo "Done." packages=( llama.cpp ledger-live orca-slicer tidal-hifi-bin dropbox ) paru -S --needed "${confirm_flags[@]}" "${packages[@]}"