#!/bin/sh -e
#
# script for purge package and its dependencies from system

purge() {
	for j in $(apkg -j $1); do
		[ "$(apkg -a ^$j$)" ] && {
			echo "[$1] dependent package is installed: $j"
			error=1
		}
	done
	[ "$error" ] && return 1

	for i in $(apkg -d $1); do
		[ "$(apkg -a ^$i$)" ] || continue
		for d in $(apkg -j $i); do
			[ "$d" = "$1" ] && continue
			[ "$(apkg -a ^$d$)" ] && continue 2
		done
		if [ "$purgeit" ]; then
			spm -r $i
		else
			echo $i
		fi
	done
	if [ "$purgeit" ]; then
		spm -r $1
	else
		echo $1
	fi
}

help() {
	cat <<EOF
usage:
	$0 [-p] <pkgs>
	
option:
	-p  remove from system
	
EOF
exit 0
}

while [ "$1" ]; do
	case $1 in
		-p) purgeit=1;;
		-h) help;;
		 *) pkg="$pkg $1";;
	esac
	shift
done

for p in $pkg; do
	apkg -p $p >/dev/null || continue # skip if package not exist in repo
	apkg -a | grep -qx $p || continue # skip if package not installed
	purge $p
done

exit 0
