last_patch() { ## returns the number of patches installed at or above this rev. ## if this is the first rev of the patch ## prepatch will return 0 ## postpatch, prebackout, and postbackout will return 1 root_dir=${ROOTDIR:-/} ## parse id and rev pid=`echo $1 | cut -d\- -f1` prev=`echo $1 | cut -d\- -f2` patch_cnt=0 ## get all installed refernces to the installed patch base id installed_patches=`patchadd -p -R $root_dir -p | sed -n -e 's/Req.*//' -e 's/[a-zA-Z]*://g' -e 's/,//g' -e "/$pid/p"` for x in $installed_patches ; do base=`echo $x | cut -d\- -f1` rev=`echo $x | cut -d\- -f2` if [ $pid -eq $base ] && [ $rev -ge $prev ] ; then ## count all installed patches includeing this patch patch_cnt=$(($patch_cnt + 1)) fi done return $patch_cnt }