arch-repo/lib/pkgver.sh

54 lines
1.4 KiB
Bash
Raw Normal View History

2022-07-16 17:02:02 +02:00
#
# get package-file with latest version for given package name
#
function latest_pkgver_path(){
# precond: In current working directory there is a subdir "db"
# $1: package name
# return: stdout: path to package file
local PKGNAME
PKGNAME="$1"
# get latest version for $PKGNAME
local LATEST_PKGVER
LATEST_PKGVER=$(latest_pkgver "${PKGNAME}") || return $?
# get the path to package file
local PKG
PKG=$(cat "db/${PKGNAME}/${LATEST_PKGVER}") || return $?
echo "${PKG}"
}
#
# get latest version of package
#
function latest_pkgver(){
# precond: In current working directory there is a subdir "db"
# $1: package name
# return: stdout: latest pkgver
local PKGNAME
PKGNAME="$1"
# pick one random version as starting point for the latest version
local LATEST_PKGVER
for PKGVER in db/"${PKGNAME}"/*; do
PKGVER=$(basename "${PKGVER}") || return $? # strip directory and suffix from filename
LATEST_PKGVER="${PKGVER}"
break
done
local cmp
for PKGVER in db/"${PKGNAME}"/*; do
PKGVER=$(basename "${PKGVER}") || return $? # strip directory and suffix from filename
# compare the currently known latest version
# with the next version
cmp=$(vercmp "${LATEST_PKGVER}" "${PKGVER}") || return $?
# if the new version is larger, save it as LATEST_PKGVER
if [ "${cmp}" -lt "0" ]; then
LATEST_PKGVER="${PKGVER}"
fi
done
echo "${LATEST_PKGVER}"
}