getpkginfo (1115B)
1#!/bin/sh 2 3which xbps-query xmllint >/dev/null || exit 1 4: "${progname:="${0##*/}"}" 5 6get_pkgsize() { 7 xmllint --xpath "/plist/dict/key[text()='$1']/following-sibling::dict[1]/key[text()='installed_size']/following-sibling::integer[1]/text()" /var/db/xbps/pkgdb-0.38.plist 2>/dev/null 8} 9 10get_depsize() { 11 #for pkg in $(xbps-query -Rx $1 | sed 's/\(>\|<\|=\).*$//'); do 12 for pkg in $(xbps-query --fulldeptree -Rx $1 | xargs -L1 xbps-uhelper getpkgname); do 13 get_pkgsize $pkg 14 done | paste -d+ -s | bc | numfmt --to=iec-i 15} 16 17usage() { 18 cat <<_EOF 19Usage: $progname [pkg] show package info 20_EOF 21 exit 1 22} 23 24show_pkginfo() { 25 local pkgver=$(xbps-query -p pkgver -R $1) 26 local pkgsize=$(xbps-query -p installed_size -R $1) 27 local depsize=$(get_depsize $1) 28 local numfile=$(xbps-query -Rf $1 | wc -l) 29 local numdep=$(xbps-query --fulldeptree -Rx $1 | wc -l) 30 cat <<_EOF 31pkg: $pkgver 32size: $pkgsize 33depsize: $depsize 34numfile: $numfile 35numdep: $numdep 36_EOF 37} 38 39[ -z "$1" ] && usage 40xbps-query -R $1 >/dev/null || { echo "invalid package"; exit 1; } 41 42show_pkginfo $1 | sed "s/^/$(tput bold)/; s/:/$(tput sgr0):/" | column -t