rendered paste body#!/bin/sh# from http://dev.gentoo.org/~solar/portage_misc/gen-portage-menu.sh.txt# modified by joe@neoturbine.net to add -a option and sudo OUTFILE=~/.fluxbox/portage_menu#modified so it would fit on one screen nmapes1@lsu.edusource /etc/make.confsource /sbin/functions.shif [ -e ${OUTFILE}.lock ]; then ewarn "Refusing to load another session for $$" exit 0fitouch ${OUTFILE}.lockecho $$ > ${OUTFILE}.lock[ -e "$PORTDIR" ] || PORTDIR=/usr/portagecd ${PORTDIR}TOTAL=0echo \[begin\] \(Portage @TOTAL@\) > $OUTFILEecho \[submenu\] \(Portage @TOTAL@\) >> $OUTFILEfind ${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 & #counter i=0; if (( $lock )); then echo unlocked echo -ne '\t' >> $OUTFILE echo \[end\] >> $OUTFILE lock=0 fi echo -ne '\t' >> $OUTFILE echo \[submenu\] \(${category}\) \{$count packages\} >> $OUTFILE 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 let ++i; if (( i!=0 && i % 100 && i % 50 == 0 )); then echo -ne '\t' >> $OUTFILE echo \[submenu\] \(more\) {} >> $OUTFILE echo locking lock=1 fi if (( i!=0 && i % 100 == 0 )); then echo -ne '\t' >> $OUTFILE echo \[end\] >> $OUTFILE echo unlocking lock=0 fi echo \[exec\] \($vname\) \{ xterm -rv -e \"emerge -va $category/$dname \; bash --login\" \} >> $OUTFILE let ++TOTAL done < <(find . -type d -maxdepth 1 | cut -c 3- | grep -v ^CVS$ | grep -v ^$) echo -ne '\t' >> $OUTFILE echo \[end\] >> $OUTFILE popd $line > /dev/nulldoneecho \[end\] >> $OUTFILEecho \[end\] >> $OUTFILEsed -e "s:@TOTAL@:${TOTAL}:g" < $OUTFILE > $OUTFILE~ && cp $OUTFILE~ $OUTFILE[ -f /usr/bin/beep ] && beep -n 1 -r 5rm ${OUTFILE}.lock