summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsrc/abslibre-tools/libredbdiff20
1 files changed, 15 insertions, 5 deletions
diff --git a/src/abslibre-tools/libredbdiff b/src/abslibre-tools/libredbdiff
index 65ba4d6..bb6e068 100755
--- a/src/abslibre-tools/libredbdiff
+++ b/src/abslibre-tools/libredbdiff
@@ -60,16 +60,27 @@ createdir() {
fi
}
+# {{ A -lt B }} is like [ A -lt B ], but for pacman version numbers
+{{() {
+ [[ $# = 4 ]] || panic
+ [[ $4 = '}}' ]] || panic
+ local a=$1
+ local op=$2
+ local b=$3
+
+ local cmp
+ cmp="$(vercmp "$a" "$b")" || die "vercmp failed"
+ [ "$cmp" "$op" 0 ]
+}
+
# Globals:
# - pkgname : the Parabola pkgname
# - ver_prbl : a map of pkgname->arch_pkgver
# - ver_arch : a map of pkgname->prbl_pkgver
# - provides : a map of pkgname->provides
compare_pkgs() {
- local cmp
if [[ -n "${ver_arch[$pkgname]}" ]] ; then
- cmp=$(vercmp "${ver_prbl[$pkgname]}" "${ver_arch[$pkgname]}")
- if [[ "$cmp" -lt 0 ]]; then
+ if {{ "${ver_prbl[$pkgname]}" -lt "${ver_arch[$pkgname]}" }}; then
printf "$printf_format" \
'=' \
"$pkgname" \
@@ -82,8 +93,7 @@ compare_pkgs() {
read -r -a _provides <<<"${provides[$pkgname]}"
for provide in "${_provides[@]}"; do
if [[ -n "${ver_arch[$provide]}" ]]; then
- cmp=$(vercmp "${ver_prbl[$pkgname]}" "${ver_arch[$provide]}")
- if [[ "$cmp" -lt 0 ]]; then
+ if {{ "${ver_prbl[$pkgname]}" -lt "${ver_arch[$provide]}" }}; then
printf "$printf_format" \
'p' \
"$pkgname" \