:
# tarprograms.sh -- parse programs.txt and create separate tar files by operating system

# set -x

any_list=
basic_list=
dos_list=
rsx_list=
unix_list=
vms_list=
xenix_list=
unknown_list=

while read line
do
	set -f - $line
	name="$1"
	shift
	case "$1" in
	[0-9]*) shift ;;
	esac
	os="$1"
	case "$name" in
	*\**)	echo "Skip $name" ;;
	*)
		case "$os" in
		[aA][nN][yY]*|[lL][eE][xX]*|[bB][cC]*|[rR][aA][tT]*) any_list="$any_list $name" ;;
		[bB][aA][sS]*) basic_list="$basic_list $name" ;;
		[mM][sS][dD][oO][sS]*) dos_list="$dos_list $name" ;;
		[rR][sS][xX]*) rsx_list="$rsx_list $name" ;;
		[uU][nN][iI]*) unix_list="$unix_list $name" ;;
		[vV][mM][sS]*) vms_list="$vms_list $name" ;;
		[xX][eE][nN]*)
			case "$name" in
			bug*) ;;
			*) xenix_list="$xenix_list $name" ;;
			esac
			;;
		date|-*) ;;
		*) unknown_list="$unknown_list $name/$os" ;;
		esac
		;;
	esac
done < programs.txt

#echo "any $any_list"
#echo "bas $basic_list"
#echo "dos $dos_list"
#echo "rsx $rsx_list"
#echo "uni $unix_list"
#echo "vms $vms_list"
#echo "xen $xenix_list"
#echo "unk $unknown_list"

# make a tar archive
#	$1 is name of archive, other arguments are names

maketar() {
	(
	cd ..
	set +f
	archive_name="$1"
	shift
	archive_list=
	for name in $*
	do
		full_list=
		for full_name in */$name */*/$name /u2/gnu/arc/$name /u/william/wb/pat/$name
		do
			if [ -f "$full_name" ]
			then
				if [ -z "$full_list" ]
				then
					full_list="$full_name"
				else
					case "$full_name" in
					*compress/*|*reflect/*|*/m/*) ;;
					*)
						echo "Warning: conflict with $name"
						ls -l $full_list
						ls -l "$full_name"
						;;
					esac
				fi
			fi
		done
		if [ -z "$full_list" ]
		then
			echo "Warning: no match found for $name in `pwd`"
		else
			archive_list="$archive_list $full_list"
		fi
	done		

	tar cvf - $archive_list | bzip2 -v9 > ${archive_name}.tar.bz2
	)
}

maketar any $any_list
maketar bas $basic_list
maketar dos $dos_list
maketar rsx $rsx_list
maketar uni $unix_list
maketar vms $vms_list
maketar xen $xenix_list

echo "Ignore unk $unknown_list"

cd ..

set +f

tar cvf files.tar restore7/programs.txt restore7/tarprograms.sh ???.tar.bz2
