#!/usr/local/plan9/bin/rc

@{cd $PLAN9; find -type f -print; find -type d -print | sed 's;$;/;'} | 
	sort | sed 's;^./;;' | grep . |
awk -vplan9'='$PLAN9 '
	function cat(s) {
		print line0, s
		next
	}
	
	BEGIN{
		# Dependencies
		# print "bin: base"
		# print "devel: base bin"
		# print "dist: base"
		# print "faces: base"
		# print "font-asian: font-core"
		# print "font-bh: font-core"
		# print "font-proof: font-core"	
		# print "font-core: core"
		# print "devel: base, lib"
		# print "lp: base, faces"
		# print "sky: base"
		# print "sky-data: sky"
		# print "src: base, devel"
		# print "troff: base, postscript"
		# print "unixdist: base, src"
	}
	
	# Eliminate unmentionables.
	{ line0 = $0 }
	/^CVS\// { next }
	/\/CVS\// { next }
	/\.#/ { next }
	/\.cvsignore/ { next }	
	/^ChangeLog/ { next }
	/^config$/ { next }
	/^install.log$/ { next }
	/CVS.IEXIST/ { next }
	
	# Print with categories.
	/^(LICENSE|CHANGES|INSTALL|NOTES|TODO)/ { cat("base") }

	/^acid\// { cat("devel") }

	/^bin\/(9c|9l|9ar|9install)/ { cat("devel") }
	/^bin\/.*\/$/ { cat("base") }
	/^bin\/./ { 
		file=$1
		cmd = "file " plan9 "/''" $1 "'' | sed ''s/.*: //'' "
		type = cmd | getline
		close(cmd)
		$1=file
		if(type ~ /script/)
			cat("base")
		else
			cat("bin")
	}
	/^bin\/$/ { cat("base") }
	
	/^dict\// { cat("dict") }
	
	/^dist\/debian\/(dists|pool)/ { next }
	/^dist\// { cat("dist") }

	/^face\// { cat("faces") }

	/^font\/(big5|gb|jis|naga10|shinonome)/ { cat("font-asian") }
	/^font\/LICENSE/ { cat("font-bh") }
	/^font\/(lucida|lucidasans|lucm|pelm)\// { cat("font-bh") }
	/^font\/(MAP|fixed|misc|sample|smiley)/ { cat("font-core") }
	/^font\/(palatino|times|special)/ { cat("font-proof") }
	/^font\// { cat("font-core") }
	
	/^include\// { cat("devel") }

	/^lib\/.*\.a$/ { cat("lib") }
	/^lib\/(..spell|acme.rc|bclib|fortunes|gv|grap|keyboard|lex|unicode|units|words|yacc)/ { cat("base") }
	/^lib\/moveplan9/ { cat("base") }
	/^lib\/hyphen.tex/ { cat("troff") }
	/^lib\/linux-isnptl\.c/ { cat("src") }
	/^lib\/$/ { cat("base") }

	/^log\// { cat("base") }

	/^lp\// { cat("lp") }
	
	/^man\/man3/ { cat("devel") }
	/^man\// { cat("base") }
	
	/^ndb\// { cat("base") }
	
	/^news\// { cat("base") }
	
	/^plumb/ { cat("base") }
	
	/^postscript\/troff/ { cat("troff") }
	/^postscript\/font\/(Lucida|lsunr|NOTICE)/ { cat("postscript-bh") }
	/^postscript\// { cat("postscript") }

	/^proto/ { cat("base") }

	/^rcmain/ { cat("base") }

	/^sky\/$/ { cat("sky") }
	/^sky\/here/ { cat("sky") }
	/^sky\// { cat("sky-data") }
	
	/^(tmac|troff)\// { cat("troff") }
	
	/^src\/mk/ { cat("devel") }

	/^src/ { cat("src") }

	/^unix\// { cat("unixdist") }
	
	# Print warning about unsorted files.
	{ 
		print "unsorted: " $0 >"/dev/stderr"
	}
'
