2013-03-02 23:00:38 +01:00
|
|
|
#!/bin/sh
|
|
|
|
|
2014-11-12 16:15:39 +01:00
|
|
|
_usage () {
|
|
|
|
cat <<EOF
|
2013-03-02 23:00:38 +01:00
|
|
|
Usage: ${1##*/} [OPTIONS] PACKAGES
|
|
|
|
|
|
|
|
Display size of files in PACKAGES.
|
|
|
|
|
|
|
|
-h: Display this help.
|
|
|
|
-n: Sort by size.
|
2013-10-23 11:24:32 +02:00
|
|
|
|
2013-03-02 23:00:38 +01:00
|
|
|
EOF
|
|
|
|
}
|
|
|
|
|
|
|
|
OPTION_SORT="cat"
|
|
|
|
|
|
|
|
while getopts ":hn" opt; do
|
2014-11-12 16:15:39 +01:00
|
|
|
case $opt in
|
|
|
|
h)
|
|
|
|
_usage "$0"
|
|
|
|
exit 1 ;;
|
|
|
|
n)
|
|
|
|
OPTION_SORT="sort -h" ;;
|
|
|
|
\?)
|
|
|
|
_usage "$0"
|
|
|
|
exit 1 ;;
|
|
|
|
esac
|
2013-03-02 23:00:38 +01:00
|
|
|
done
|
|
|
|
|
|
|
|
shift $(($OPTIND - 1))
|
|
|
|
|
|
|
|
if [ $# -eq 0 ]; then
|
2014-11-12 16:15:39 +01:00
|
|
|
echo "Missing argument."
|
|
|
|
_usage "$0"
|
|
|
|
exit 1
|
2013-03-02 23:00:38 +01:00
|
|
|
fi
|
|
|
|
|
2013-10-27 19:50:23 +01:00
|
|
|
! command -v pacman >/dev/null && echo "You need pacman to run this script." && exit 1
|
2013-10-29 21:49:48 +01:00
|
|
|
if [ $(pacman -Qq "$@" 2>/dev/null | wc -l) -eq 0 ]; then
|
2014-11-12 16:15:39 +01:00
|
|
|
echo "No valid package given." >&2
|
|
|
|
exit
|
2013-10-29 21:49:48 +01:00
|
|
|
fi
|
2013-10-23 11:24:32 +02:00
|
|
|
|
2013-10-25 13:44:07 +02:00
|
|
|
## We use "eval" to be compatible with non-POSIX wordsplitting (e.g. zsh).
|
2014-02-03 17:51:06 +01:00
|
|
|
## WARNING: this only works with GNU 'du'.
|
2014-01-26 10:32:30 +01:00
|
|
|
du -bch $(pacman -Qlq "$@" | grep -v '.*/$' | sort -u) 2>/dev/null | eval ${OPTION_SORT}
|