fix(install): replace set-diff membership with per-package pacman -Qq --quiet query (deterministic)

This commit is contained in:
Frank committed 2026-09-10 21:01:55 -07:00
1 parent c8cac879e6
commit d0c90fccbd
1 file changed
+3 -3
+3 -3
View File
@@ -53,10 +53,10 @@ if [[ -f "$REPO/packages/aur.pkgs" ]]; then
mapfile -t AUR_PKGS < <(read_manifest "$REPO/packages/aur.pkgs") mapfile -t AUR_PKGS < <(read_manifest "$REPO/packages/aur.pkgs")
fi fi
mapfile -t INSTALLED < <(pacman -Qq | sort) # Membership via direct DB query per package — deterministic, no set-diff plumbing.
DELTAC=() DELTAC=()
for p in "${PKGS[@]}"; do for p in "${PKGS[@]}"; do
printf '%s\n' "${INSTALLED[@]}" | grep -qx -- "$p" || DELTAC+=("$p") pacman -Qq --quiet -- "$p" >/dev/null || DELTAC+=("$p")
done done
echo "install.sh [$MODE] host=$HOST" echo "install.sh [$MODE] host=$HOST"
@@ -66,7 +66,7 @@ else
echo "repo pkgs to install: ${DELTAC[*]}" echo "repo pkgs to install: ${DELTAC[*]}"
fi fi
for p in "${AUR_PKGS[@]}"; do 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 done
[[ "$MODE" == "check" ]] && exit 0 [[ "$MODE" == "check" ]] && exit 0