#!/bin/bash
d="/home/robbat2/deptree.dot"
echo "digraph deptree {" > $d

good="$*"
echo "building for: $good"

source /var/lib/init.d/deptree

format() {
	n="${1//-/_}"
	n="${n//./_}"
	n="${n//:/_}"
	echo "$n"
}

for b in `seq 1 ${RC_DEPEND_TREE[0]}`; do
	let i=$(($b*$rc_index_scale))
	raw="${RC_DEPEND_TREE[$i]}"
	ineed="${RC_DEPEND_TREE[$i+$rc_type_ineed]}"
	#needsme="${RC_DEPEND_TREE[$i+$needsme]}"
	iuse="${RC_DEPEND_TREE[$i+$rc_type_iuse]}"
	#usesme="${RC_DEPEND_TREE[$i+$usesme]}"
	ibefore="${RC_DEPEND_TREE[$i+$rc_type_ibefore]}"
	iafter="${RC_DEPEND_TREE[$i+$rc_type_iafter]}"

	n="$(format "${raw}")"
	if [ "${good//${n}}" != "${good}" ]; then
		echo "$n [label=\"$raw\"];" >> $d
		#for x in $ineed ; do
		#	if [ "${good//${x}}" != "${good}" ]; then
		#		x="$(format "${x}")"
		#		echo "$n -> $x [label=\"need\"];" >>$d
		#	fi
		#done
		#for x in $iuse ; do
		#	if [ "${good//${x}}" != "${good}" ]; then
		#		x="$(format "${x}")"
		#		echo "$n -> $x [label=\"use\"];" >>$d
		#	fi
		#done
		#for x in $ibefore ; do
		#	if [ "${good//${x}}" != "${good}" ]; then
		#		x="$(format "${x}")"
		#		echo "$n -> $x [label=\"before\"];" >>$d
		#	fi
		#done
		for x in $iafter ; do
			if [ "${good//${x}}" != "${good}" ]; then
				x="$(format "${x}")"
				echo "$x -> $n [label=\"after\"];" >>$d
			fi
		done
	fi
done;

echo "}" >> $d
dot ${d} -Tpng -o ${d/.dot/.png}
