#!/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
