#!/bin/rc
name=$1
string=$2
switch($name){
case chip
	grep -i $string /sys/lib/cda/lookup/ics | awk '
	BEGIN	{ FS = ","; result=1;
		  print "fn : chip mfr mfr.name #pins pkg";
		  for(line=0; result>0; line++) {
			result = getline main[line] < "/sys/lib/cda/lookup/ics.fn";
			if (length(main[line]) == 0) break;
		  }
		  for(category=0; result>0; category++) {
		    for(subcategory=0; ;subcategory++) {
			result = getline subs[category subcategory] < "/sys/lib/cda/lookup/ics.fn";
			if (subs[category subcategory] == "") break;
		    }
		  }
		}
		{ print subs[$1 $2],":",$3,$4,$5,$6,$7; }
	'
case type
	grep -i $string /sys/lib/cda/lookup/ics.index | awk '
	BEGIN	{ FS=":"; }
		{ category[$1] = count; subcategory[$2] = count++;
		  title[$1 $2] = $3;
		}
	END	{ FS=",";
		  if (count == 0) {
		  	print "lookup: type not found";
		  	exit(1);
		  }
		  print "fn : chip mfr mfr.name #pins pkg";
		  for(;;) {
			result = getline < "/sys/lib/cda/lookup/ics";
			if (result <= 0) break;
			for(c in category)
			    if ($1 == c)
				for(sc in subcategory)
				    if ($2 == sc)
					print title[$1 $2],":",$3,$4,$5,$6,$7;
		  }
		}
	'
case index
	grep -i $string /sys/lib/cda/lookup/ics.index | awk '
	BEGIN	{ FS=":"; }
		{ print $3; }
	'
case *
	echo usage: lookup [chip type index] string
}
