#!/usr/pkg/plan9/bin/rc

nl='
'

fn comma {
	if(! ~ $#* 0 1){
		echo -n $1
		shift
		sep=' '
		len=0
		for(i){
			echo -n $sep$i
			sep=', '
			l=`{echo -n $sep$i|9 wc -c}
			len=`{echo $l+$len | hoc}
			if(test $len -gt 60){
				sep=','^$nl^' '
				len=0
			}
		}
		echo
	}
}

if(~ $#* 1 && ~ $1 all)
	*=`{9 ls -p ../pkg | grep -v CVS}

if(~ $#TREE9 0)
	TREE9=$PLAN9

date=`{u date +%Y%m%d}
march=`{uname -m}
arch=all
switch($march){
case i*86
	march=i386
}

for(i)@{
	if(! test -f ../pkg/$i){
		echo no package ../pkg/$i
		exit 1
	}
	package=plan9port-$i
	grepfor=$i
	. ../pkg/$i
	deb=$package^_$date^_$arch.deb
	rm -rf $i $deb
	mkdir $i $i/DEBIAN
	whatis grepfor
	awk -v'grepfor='$grepfor -v 'pkg='$i -v 'plan9='$TREE9 '
	BEGIN { print "grep for " grepfor >"/dev/stderr" }
	$2==grepfor {
		dir=$1
		sub("/[^/]+$", "/", dir)
		if(dir != lastdir){
			printf("mkdir -p ''%s''\n", pkg "/usr/local/plan9/" dir);
			lastdir = dir
		}
		if($1 !~ /\/$/)
			printf("cp ''%s'' ''%s''\n", plan9 "/" $1, pkg "/usr/local/plan9/" $1)
	}' $TREE9/dist/filelist | rc
	size=`{du -sk $i | awk '{print $1}'}
	{
		echo Package: $package
		echo Version: $date
		echo Architecture: $arch
		comma Depends: $depends
		comma Suggests: $suggests
		comma Conflicts: $conflicts
		echo Source: plan9port-src
		echo Installed-Size: $size
		echo Maintainer: 'Russ Cox <rsc@swtch.com>'
		echo Description: $desc
	} >$i/DEBIAN/control
	if(test -d $i/usr){
		@{
			cd $i
			find usr -type f -print0 | xargs -0 -n 100 u md5sum
		} >$i/DEBIAN/md5sums
	}
	if not
		echo '>>>' $package is a virtual package.
	dpkg -b $i pool/$deb
	rm -rf $i
}

