#!/bin/bash

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

separator="@"
order=first_username

usage() {

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

get_domains() {
domains=
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/_5f/_/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$separator == 2 ] ; then
            echo $username
        else
            if [ 2$order == 2first_username ] ; then
                echo ${username}${separator}${domain}
            else
                echo ${domain}${separator}${username}
            fi
        fi
        ;;
    *)
        get_domains
        exit
        ;;
esac
