#!/bin/tcsh -f #small, ugly, slow script which scan IRIX swpkg packages and extract dependency and version info. Needs (t)csh, md5sum, strings, grep, sort, od, awk, cat, tar, head, tail, touch, ls, sort, mv and rm echo "no dependencies" > .depstd \mv ./descript.ion ./descript.ion.old >& /dev/null touch ./descript.ion ./descript.ion.old foreach i ( `ls -1 neko_*.tardist` ) echo $i if ( "`uname`" == "FreeBSD" ) then md5 $i | awk '{ print $4 }' | tr -s "\n" " " > .tmp else md5sum $i | awk '{ print $1 }' | tr -s "\n" " " > .tmp endif set j=`cat .tmp` grep $j descript.ion.old > .tmpsiz if ( $status == 0 ) then cat .tmpsiz >> descript.ion else tar tf $i | sed 's/\.\///g' | grep -v "\." > .tmpsiz set j=`cat .tmpsiz` tar xf $i $j strings $j | tr -cs "[A-Z][a-z][0-9][_]" "[\012*]" | grep neko_ | grep -v $j | sort -u | sed "s/neko_//g" |tr -s "\n" "," | awk '{print substr($0,0,length($0)-1)}' > .dep ls -l $j | awk '{print $5}' > .tmpsiz set MSIZ = `cat .tmpsiz` if ( "`uname`" == "IRIX64" || "`uname`" == "IRIX" ) then while ( $MSIZ > 0 ) od -An -j $MSIZ -t d4 -N8 $j >> .tmpsiz @ MSIZ-- end grep "0000141071 " .tmpsiz | sort | tail -1 | awk '{printf "%d ",$2}' > .tmpver else while ( $MSIZ > 0 ) od -An -j $MSIZ -t d2 -N8 $j >> .tmpsiz @ MSIZ-- end grep "9986 " .tmpsiz | grep " 15 " | awk '{if (($1=="9986") && ($2=="15")) print 65536*$3+$4}' | sort | tail -1 | awk '{printf "%d ",$1}' > .tmpver endif \rm $j if ( -z .dep ) cp .depstd .dep echo $j | sed "s/neko_//" > .tmpsiz set j=`cat .tmpsiz` echo $i $j | awk '{print $1"\t"$2}' | tr -s "\n" " "> .tmpsiz cat .tmpsiz .tmpver .tmp .dep >> descript.ion endif end \rm .tmp .dep .depstd .tmpsiz .tmpver descript.ion.old >& /dev/null #last line