#!/bin/bash

# BT-82842
shopt -s expand_aliases
alias GETTEXT="gettext ${0##*/}"

separator="@"
order=first_username

usage() {
printf "$(GETTEXT "Использование: %s [<ключи>]")\n" ${0##*/}
printf "$(GETTEXT "Ключи:")\n"
echo "-h, --help    $(GETTEXT "Вывести этот текст")\n" ""
echo "-i            $(GETTEXT "Вывести информацию о подключенных доменах. То же самое при запуске без ключей.")"
echo "-o            $(GETTEXT "Возвратить порядок следования логина и домена, т.е. значение 'first_username' или 'first_domain' <по умолчанию>.")."
echo "-s            $(GETTEXT "Возвратить символ сепаратора") (@, \) "
echo "-l $(GETTEXT "<логин> <имя домена>")    $(GETTEXT "Возвратить строку сцепленных логина и имени домена с учетом установленного порядка")"
echo "              $(GETTEXT "следования и символа сепаратора.")"
}

get_domains() {
domains=
domains=$(realm list 2>/dev/null | grep "domain-name:" | sed -e "s/  domain-name: //")
#domains=$(cat /etc/ipa/default.conf 2>/dev/null | grep "domain = " | sed -e "s/domain = //")
domains="$domains $(dbus-send --system --dest=org.freedesktop.sssd.infopipe --print-reply /org/freedesktop/sssd/infopipe org.freedesktop.sssd.infopipe.ListDomains 2>/dev/null \
 | grep 'object path' | sed -e "s/_2e/./g" | sed -e "s/_2d/-/g" | sed -e "s/\"//g" | sed -e "s|.*/||g")"
echo -e $domains | sed -e "s| |\n|g" | sort -u
}

case "${1}" in
    --help | -h) 
        usage
        exit 0
        ;;
    -s)
        echo ${separator}
        exit 0
        ;;
    -o)
        echo ${order}
        exit 0
        ;;
    -l)
        username=${2}
        domain=${3}
        if [ 2$order == 2first_username ] ; then
            echo ${username}${separator}${domain}
        else
            echo ${domain}${separator}${username}
        fi
        ;;
    *)
        get_domains
        exit
        ;;
esac
