forked from kiss-community/kiss
kiss-outdated: Check for outdated packages via repology
This commit is contained in:
parent
2f64b45677
commit
33dd1ed467
49
contrib/kiss-outdated
Executable file
49
contrib/kiss-outdated
Executable file
@ -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)
|
Loading…
Reference in New Issue
Block a user