#!/bin/csh -f # # estable # # Lists the available ebuilds from http://packages.gentoo.org for a given package # and their stability or masking. # # Kevin P. Inscoe (kevin {at} inscoe (dot) /org/) - December 11, 2004 # # Version: 1.0 - 12/12/2004 # # Const set archs="alpha amd64 arm hppa ia64 m68k mips ppc ppc64 ppcmacos ppcod s390 sh sparc x86 x86obsd x86fbsd x86od" set portage="/usr/portage" # Defaults set arch=15 # args if ( $#argv < 1 ) then echo "usage: estable base/pkg [arch]" echo " architectures supported: $archs" exit 1 endif if ( $#argv > 1 ) then set valid=0 set arch=1 foreach a ( $archs ) if ( $2 == $a ) then set valid=1 endif if ( $valid == 0 ) @ arch++ end if ( $valid == 0 ) then echo "Invalid architecture: $2, exiting." exit 1 endif echo "Architecture: $2" else echo "Architecture: x86" endif set pkg="$portage/$1" set name=`echo $1 | awk -F/ '{ print $2 }'` set base=`echo $1 | awk -F/ '{ print $1 }'` # Does this package even exist in Portage? if ( ! -d $pkg ) then echo "No such package $pkg" exit 1 endif # Find available ebuilds for base/package echo "Searching ebuilds for $1..." foreach ebuild ( `ls $portage/$1/*.ebuild` ) set file=`basename $ebuild` set prefix=`echo $file | sed -e 's/.ebuild//'` set vers=`echo $prefix | sed -e "s/$name-//g"` set out="`lynx -dump -nolist 'http://packages.gentoo.org/ebuilds/?$name-$vers' | tail -n 35 | grep '$vers ' | grep -v $name | grep -v 'm a c o s p p c' | grep -v 'http://' | grep '-'`" set mask=`echo "$out" | sed -e 's/ //g' | sed -e "s/$vers//"` set flag="`echo -n '$mask' | cut -c $arch | sed -e 's/\n//g'`" set stat="[unknown flag=$flag]" if ( "$flag" == "-" ) set stat="Not Available" if ( "$flag" == "+" ) set stat="Stable" if ( "$flag" == "~" ) set stat="Testing" if ( "$flag" == "M" ) set stat="Masked" echo "$1-$vers $stat" end # End exit