#!/bin/sh print_size() { SIZE=$1 OUT_SIZE=$SIZE # if [ $SIZE -gt 1500000 ]; then # OUT_SIZE=`expr $SIZE / 1024 / 1024`Mb if [ $SIZE -gt 10000 ]; then OUT_SIZE=`expr $SIZE / 1024`Kb fi # fi echo $OUT_SIZE; } PKG=$1 if [ -z "$PKG" ]; then echo pack exit 1 fi PKGS=`emerge -p $PKG | grep '^\[' | sed 's/^................//' | sed 's/ \[.*$//'` TOTAL_SIZE=0 TOTAL_SIZE_DOWNLOAD=0 for P in $PKGS; do GROUP=`echo $P | sed 's/\/.*$//'` CP=`echo $P | sed 's/^.*\///'` PK=`echo $CP | sed 's/-[0-9].*$//'` echo "$GROUP/$CP" if [ -e /usr/portage/$GROUP/$PK/$CP.ebuild ]; then DIGEST="/usr/portage/$GROUP/$PK/files/digest-$CP" if [ -e $DIGEST ]; then FILES=`cat $DIGEST | awk '{print $4_"|"_$3}'` PKG_SIZE=0 PKG_SIZE_DOWNLOAD=0 for F in $FILES; do FILE=`echo $F | sed 's/^.*|//'` SIZE=`echo $F | sed 's/|.*$//'` OUT_SIZE=`print_size $SIZE` OUT_EX='' if [ ! -e /usr/portage/distfiles/$FILE ]; then PKG_SIZE_DOWNLOAD=`expr $PKG_SIZE_DOWNLOAD + $SIZE` else OUT_EX=' (ok)' fi echo -e "\t\t\t" $OUT_SIZE "\t" $FILE $OUT_EX PKG_SIZE=`expr $PKG_SIZE + $SIZE` done echo " Pkg size: `print_size $PKG_SIZE` " " Download: `print_size $PKG_SIZE_DOWNLOAD`" TOTAL_SIZE=`expr $TOTAL_SIZE + $PKG_SIZE` TOTAL_SIZE_DOWNLOAD=`expr $TOTAL_SIZE_DOWNLOAD + $PKG_SIZE_DOWNLOAD` else echo digest- Not found fi else echo .ebuild Not found fi done echo Total Size: `print_size $TOTAL_SIZE` " " Download: `print_size $TOTAL_SIZE_DOWNLOAD`