#!/bin/sh

datadir="/var/lib/install3/"
profiledir="$datadir/profiles"
profilesubdirs="groups lists"

alterator_api_version=1

. alterator-sh-functions

directory_awk()
{
    alterator-dump-desktop \
	-v lang="$in_language" \
	-v out="Name" \
	"$@"
}

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

list_profile()
{
    for f in $profiledir/*; do
	[ -s "$f/.directory" ] || continue
	printf '%s\t' "${f##*/}"
	directory_awk "$f/.directory"
    done | write_enum
}

write_profile()
{
    [ -d "$profiledir/$1" ] || return
    for i in $profilesubdirs; do
	rm -rf -- "$datadir/$i"
	cp -a -- "$profiledir/$1/$i" "$datadir"
    done
}

read_profile()
{
    local f="$profiledir/.directory"
    [ -s "$f" ] || continue

    directory_awk "$f"|
	(read required name; write_string_param question "$name")

    local flist="$(find /var/lib/install3/profiles -mindepth 2 -name '.directory')"
    local current="$(grep -l 'X-Alterator-Required=yes' $flist|head -n1)"
    current="${current%%/.directory}"
    write_string_param current "${current##*/}"
}

on_message()
{
	case "$in_action" in
	    read)
		read_profile
		;;
	    list)
		list_profile
		;;
	    write)
		[ -z "$in_current" ] || write_profile "$in_current"
		;;
	esac
}

message_loop
