All pastes #34599 Raw Edit

Untitled

public shellscript v1 · immutable
#34599 ·published 2005-12-22 12:37 UTC
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