fix(install): replace set-diff membership with per-package pacman -Qq --quiet query (deterministic)
This commit is contained in:
+3
-3
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user