There is script to calculate size of files needs to emerge packet.
emerge -p need root privileges and get_size need it too
Example:
$ sudo get_size cannonsmash
media-libs/sdl-mixer-1.2.5-r1
914Kb SDL_mixer-1.2.5.tar.gz (ok)
Pkg size: 914Kb Download: 0
games-simulation/cannonsmash-0.6.5
1435Kb csmash-0.6.5.tar.gz
1045Kb danslatristesse2-48.ogg
Pkg size: 2481Kb Download: 2481Kb
Total Size: 3395Kb Download: 2481Kb
---begin get_size---
#!/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`
---end---
--
#!/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`
--
[EMAIL PROTECTED] mailing list