dotfiles

Dash Eclipse's dotfiles
git clone git://ezup.dev/dotfiles.git
Log | Files | Refs | README | LICENSE

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