#!/bin/sh
#
# List installed packages in a suitable format for GTK tree.
# List mirrored packages using the packages.desc file.
#

installable_list()
{
	IFS="|"
	while read PACKAGE VERSION SHORT_DESC; do
		[ -d /var/lib/tazpkg/installed/${PACKAGE%% *} ] && continue
		echo "$PACKAGE|$VERSION|$SHORT_DESC"
	done < /var/lib/tazpkg/packages.desc 2> /dev/null
	unset IFS
}

installed_list()
{
	for pkg in /var/lib/tazpkg/installed/*
	do
		. $pkg/receipt
		if [ "$CAT" == "all" -o "$CATEGORY" == "$CAT" ]; then
			echo "$PACKAGE|$VERSION|$SHORT_DESC"
		fi
	done
}

case $1 in
	installed)
		CAT=`cat /tmp/tazpkgbox/installed-category`
		installed_list $CAT;;
	installable)
		CAT=`cat /tmp/tazpkgbox/installable-category`
		if [ "$CAT" == "all" ]; then
			installable_list
		else
			installable_list | grep "$CAT"
		fi ;;
	mirrored)
		CAT=`cat /tmp/tazpkgbox/mirrored-category`
		if [ "$CAT" == "all" ]; then
			cat /var/lib/tazpkg/packages.desc
		else
			grep "$CAT" /var/lib/tazpkg/packages.desc
		fi ;;
	*)
		echo "Usage: /usr/lib/slitaz/tazpkgbox/list [installed|installable|mirrored]" ;;
esac

exit 0
