mirror of
https://codeberg.org/privacy1st/arch
synced 2024-12-23 01:16:04 +01:00
54 lines
1.4 KiB
Bash
54 lines
1.4 KiB
Bash
|
#
|
||
|
# 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}"
|
||
|
}
|