zpkg/src/view.sh
2020-05-22 16:19:48 +02:00

90 lines
1.6 KiB
Bash

#!/bin/sh
deps()
{
cd "$PKG_PATH"
l=$(grep -w "^$1" pkglist) || return $?
echo "$l" | cut -d' ' -f3-
}
# $1 = pkg file
desc() {
tar -xOf "$1" DESC
}
resolve_packages()
{
RET=0
cd "$PKG_PATH"
for I in $*
do
if ! grep -wq "^$I" pkglist 2>/dev/null
then
[ "$LOG" = "true" ] && echo "Package '$I' not found" >&2
RET=1
else
echo "$I"
fi
done
return $RET
}
# env: INCLUDE_PACKAGES
resolve_deps()
{
ALLDEPS=""
RET=0
for I in $*
do
ALLDEPS="$ALLDEPS $(deps $I)" || { echo "Package '$I' not found" >&2 ; RET=$((RET+1)) ; }
done
[ "$INCLUDE_PACKAGES" = "true" ] && ALLDEPS="$ALLDEPS $*"
echo "$ALLDEPS" | tr -s ' \n' '\n' | sort | uniq | sed '/^$/d'
return $RET
}
is_installed()
{
cd "$PKG_PATH"
grep -qw "^$1" installed 2>/dev/null
return $?
}
# $1 = file
view_package_file() {
tree=$(tar -tJf "$1" 2>/dev/null) || exit $?
echo "$tree" | sed "s|^ROOT/|/|g ; /\/$/d ; s|^HOME/|$HOME/|g ; /^DEPS/d ; /^DESC/d" 2>/dev/null
}
# $1 = package name
view_package() {
cd "$PKG_PATH" && view_package_file "$1.tar.xz"
}
removed_packages()
{
cd "$PKG_PATH"
cat installed 2>/dev/null | while read -r in
do
name=$(echo "$in" | awk '{print $1}')
rem=$(grep -w "^$name" pkglist | awk '{print $2}')
if [ -z "$rem" ] ; then
echo $name
fi
done
}
outdated_packages()
{
cd "$PKG_PATH"
cat installed 2>/dev/null | while read -r in
do
name=$(echo "$in" | awk '{print $1}')
loc=$(echo "$in" | awk '{print $2}')
rem=$(grep -w "^$name" pkglist | awk '{print $2}')
if [ -n "$rem" ] && [ "$loc" -lt "$rem" ]
then
echo $name
fi
done
}