arch-repo/lib/pkginfo.sh

61 lines
1.6 KiB
Bash

#
# get content of .PKGINFO from package-file
#
function get_pkginfo(){
# $1: path to package file
# return: variable $PKGINFO
if endswith "$1" ".pkg.tar.xz"; then
PKGINFO=$(tar -xf "$1" -O .PKGINFO --force-local) || { echo "tar failed"; return 1; }
elif endswith "$1" ".pkg.tar.zst"; then
PKGINFO=$(tar -I zstd -xf "$1" -O .PKGINFO --force-local) || { echo "tar failed"; return 1; }
else
echo "$1 does not seem to be a package!"
return 1
fi
}
#
# get pkgname from $PKGINFO
#
function get_pkgname(){
# return: stdout: package name
# remove "pkgname = " as well as tailing whitespace characters
local tmp
tmp=$(echo "${PKGINFO}" | grep '^pkgname =') || { echo "grep failed"; return 1; }
local PKGNAME
PKGNAME=$(echo "${tmp}" | sed 's|^pkgname\s*=\s*||; s|\s*$||') || { echo "sed failed"; return 1; }
echo "${PKGNAME}"
}
#
# get pkgver from $PKGINFO
#
function get_pkgver(){
# return: stdout: package version
# remove "pkgver = " as well as tailing whitespace characters
local tmp
tmp=$(echo "${PKGINFO}" | grep '^pkgver =') || { echo "grep failed"; return 1; }
local PKGVER
PKGVER=$(echo "${tmp}" | sed 's|^pkgver\s*=\s*||; s|\s*$||') || { echo "sed failed"; return 1; }
echo "${PKGVER}"
}
#
# get url from $PKGINFO
#
function get_pkgurl(){
# return: stdout: url
# remove "url = " as well as tailing whitespace characters
local tmp
tmp=$(echo "${PKGINFO}" | grep '^url =') || { echo "grep failed"; return 1; }
local PKGURL
PKGURL=$(echo "${tmp}" | sed 's|^url\s*=\s*||; s|\s*$||') || { echo "sed failed"; return 1; }
echo "${PKGURL}"
}