cpt

[ARCHIVED] Carbs Packaging Tools
git clone git://git.ckyln.com/~cem/cpt.git
Log | Files | Refs | README | LICENSE

commit 33dd1ed46722da57a97a4e413aeff96497840dc3
parent 2f64b456774ffd8b1c8d17e5deb86030599ec00d
Author: Dylan Araps <dylan.araps@gmail.com>
Date:   Wed,  4 Mar 2020 00:49:04 +0200

kiss-outdated: Check for outdated packages via repology

Diffstat:
Acontrib/kiss-outdated | 49+++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 49 insertions(+), 0 deletions(-)

diff --git a/contrib/kiss-outdated b/contrib/kiss-outdated @@ -0,0 +1,49 @@ +#!/bin/sh +# +# Check installed packages for updates. + +old_IFS=$IFS + +# List via arguments or all installed packages. +if [ "$1" ]; then + set -- printf '%s\n' "$@" +else + set -- kiss l +fi + +"$@" | (while read -r pkg _; do { + read -r ver _ < "/var/db/kiss/installed/$pkg/version" + + # Fix some package names. + case $pkg in + *-bin) fix=${pkg%%-bin} ;; + esac + + # Grab the repology version from the SVG file. + rep=$(curl -s "https://repology.org/badge/latest-versions/${fix:-$pkg}.svg") + rep=${rep%</text>*} + rep=${rep##*>} + + # Skip these. + # shellcheck disable=2106 + { + [ "${rep:--}" = - ] && continue + [ "$ver" = git ] && continue + } + + # Split the comma separated list. + # shellcheck disable=2086 + { + IFS=', ' + set -f + set +f -- $rep + IFS=$old_IFS + } + + # Parse comma separated version lists. + { + for v; do case $v in "$ver") match=1; esac; done + + [ "$match" ] || printf '%s\n' "$pkg $ver -> $rep" + } +} & done; wait)