#!/bin/sh OUTFILE=~/.fluxbox/portage_menu source /etc/make.conf source /sbin/functions.sh if [ -e ${OUTFILE}.lock ]; then ewarn "Resfusing to load another session for $$" exit 0 fi touch ${OUTFILE}.lock echo $$ > ${OUTFILE}.lock [ -e "$PORTDIR" ] || PORTDIR=/usr/portage cd ${PORTDIR} TOTAL=0 echo \[begin\] \(Portage @TOTAL@\) \{\} > $OUTFILE find ${PORTDIR} -name '*[a-z]-[a-z]*' -type d -maxdepth 1 | while read line; do # [ -f /usr/bin/beep ] && beep -n 1 -r 1 pushd $line > /dev/null count=$(find . -type d -maxdepth 1 | cut -c 3- | grep -v ^CVS$ | grep -v ^$ |wc -l | awk '{print $1}') category=$(basename $line) # [ -w /dev/speech ] && echo $category > /dev/speech & echo -ne '\t' >> $OUTFILE echo \[submenu\] \(${category}\) \{$count packages\} >> $OUTFILE find . -type d -maxdepth 1 | cut -c 3- | grep -v ^CVS$ | grep -v ^$ | while read dname ; do echo -ne '\t\t' >> $OUTFILE #/usr/lib/portage/bin/portageq has_version / $category/$dname ret=$? #if [ "$ret" == 0 ] ; then # vname=$(basename $(/usr/lib/portage/bin/portageq best_version / $category/$dname)) #else vname=$dname #fi echo \[exec\] \($vname\) \{ xterm -rv -e \"emerge -pv $category/$dname \; bash --login\" \} >> $OUTFILE let ++TOTAL done echo -ne '\t' >> $OUTFILE echo \[end\] >> $OUTFILE popd $line > /dev/null done echo \[end\] >> $OUTFILE sed -e "s:@TOTAL@:${TOTAL}:g" < $OUTFILE > $OUTFILE~ && cp $OUTFILE~ $OUTFILE [ -f /usr/bin/beep ] && beep -n 1 -r 5 rm ${OUTFILE}.lock