diff --git a/scripts/install.sh b/scripts/install.sh index 705a1d6..4f787a2 100755 --- a/scripts/install.sh +++ b/scripts/install.sh @@ -53,10 +53,10 @@ if [[ -f "$REPO/packages/aur.pkgs" ]]; then mapfile -t AUR_PKGS < <(read_manifest "$REPO/packages/aur.pkgs") fi -mapfile -t INSTALLED < <(pacman -Qq | sort) +# Membership via direct DB query per package — deterministic, no set-diff plumbing. DELTAC=() for p in "${PKGS[@]}"; do - printf '%s\n' "${INSTALLED[@]}" | grep -qx -- "$p" || DELTAC+=("$p") + pacman -Qq --quiet -- "$p" >/dev/null || DELTAC+=("$p") done echo "install.sh [$MODE] host=$HOST" @@ -66,7 +66,7 @@ else echo "repo pkgs to install: ${DELTAC[*]}" fi for p in "${AUR_PKGS[@]}"; do - printf '%s\n' "${INSTALLED[@]}" | grep -qx -- "$p" || echo "aur pkg pending: $p" + pacman -Qq --quiet -- "$p" >/dev/null || echo "aur pkg pending: $p" done [[ "$MODE" == "check" ]] && exit 0