diff options
Diffstat (limited to 'trunk/src/pkg-size')
| -rw-r--r-- | trunk/src/pkg-size/AUTHORS | 0 | ||||
| -rw-r--r-- | trunk/src/pkg-size/ChangeLog | 0 | ||||
| -rw-r--r-- | trunk/src/pkg-size/README | 0 | ||||
| -rw-r--r-- | trunk/src/pkg-size/pkg-size | 52 |
4 files changed, 52 insertions, 0 deletions
diff --git a/trunk/src/pkg-size/AUTHORS b/trunk/src/pkg-size/AUTHORS new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/trunk/src/pkg-size/AUTHORS diff --git a/trunk/src/pkg-size/ChangeLog b/trunk/src/pkg-size/ChangeLog new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/trunk/src/pkg-size/ChangeLog diff --git a/trunk/src/pkg-size/README b/trunk/src/pkg-size/README new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/trunk/src/pkg-size/README diff --git a/trunk/src/pkg-size/pkg-size b/trunk/src/pkg-size/pkg-size new file mode 100644 index 0000000..96cdff2 --- /dev/null +++ b/trunk/src/pkg-size/pkg-size @@ -0,0 +1,52 @@ +#!/bin/sh + +# Copyright(c) 2002, Gentoo Technologies, Inc +# Author: Karl Trygve Kalleberg <karltk@gentoo.org> + +spec=$1 + +name=`echo $1 | sed "s/\([^/]*\)\///"` +category=`echo $1 | sed "s/\/.*//"` + +if [ "$category" == "$name" ] ; then + category= +fi + +function tryfile() { + local foo + foo=/var/db/pkg/$1/CONTENTS + bar=`ls $foo 2> /dev/null` + for i in $bar ; do + if [ -f "$i" ] ; then + echo $i + break + fi + done +} + +file=`tryfile "${category}/${name}"` +if [ -z $file ] ; then + file=`tryfile "${category}/${name}*"` + if [ -z $file ] ; then + file=`tryfile "${category}*/${name}"` + if [ -z $file ] ; then + file=`tryfile "${category}*/${name}*"` + if [ -z $file ] ; then + echo "!!! Package resembling ${category}/${name} not found" + exit 1 + fi + fi + fi +fi + +pkgname=`echo $file | sed -e "s:\/var\/db\/pkg\/::" -e "s:\/CONTENTS::"` + +totals=`cat $file|grep "obj"|awk '{ print $2 }' | sed "s/ /\\ /" | xargs du -scb | grep total | cut -f 1` + +size=0 +for i in $totals ; do + size=$[size+i] +done + +echo "$pkgname $size ($[size/1024]KB)" + |
