#!/bin/sh

profiledir="/var/lib/install3/"
datadir="/usr/share/alterator-pkg/"

groupsdir="$profiledir/groups"
listsdir="$profiledir/lists"
testsdir="$profiledir/tests"

. alterator-sh-functions

directory_awk()
{
    alterator-dump-desktop \
	-v lang="$in_language" \
	-v out="X-Alterator-Required;X-Alterator-PackageList;X-Alterator-Conflicts;Name" \
	-v def="no;notfound;notfound;" \
	"$@"
}

print_required()
{
    if [ "$1" = "yes" ];then
	echo "#t"
    else
	echo "#f"
    fi
}

print_notfound()
{
    if [ "$1" = "notfound" ];then
	echo ""
    else
	echo "$1"
    fi
}

print_directory()
{
    local IFS='	'
    while read id required lists conflicts name; do
	printf '("%s" required %s lists "%s" conflicts "%s" label "%s")\n' \
	    "$id" \
	    "$(print_required "$required")" \
	    "$(print_notfound $lists)" \
	    "$(print_notfound $conflicts)" \
	    "$name"
    done
}

list_groups()
{
    for f in $groupsdir/*.directory; do
	local name="${f##*/}"
	printf '%s\t' "${name%%.directory}"
	directory_awk "$f"
    done | print_directory
}

on_message()
{
	case "$in_action" in
	    list)
		echo '('
		list_groups
		echo ')'
		;;
	    *)
		echo '#f'
		;;
	esac
}

message_loop
