#!/bin/bash
adr=''
auto=0

if [ -z "${1}" ]; then
    cat /etc/hosts | grep -v "^#" | grep "buk" | grep -v 'bukts.ru' | awk '{print $1 OFS $2}'
    exit 0
fi

if [ "${1}" == 'bukserver' -o ! -z "$(echo ${1} | grep 'bukwplace[1-9]')" ]; then
    QUE=$1
    if [ ! -z "${2}" ]; then
        adr=$2
	auto=1
    fi
else
    echo 'Неверные данные в командной строке'
    exit 1
fi

if [ ${auto} -eq 1 ]; then
    if [ "$adr" == '--show' ]; then
	adr=$(cat /etc/hosts | grep -v "^#" | grep "${QUE}" | awk '{print $1}' | tail -1)
	echo "$QUE $adr"
	exit 0
    fi
    if [ ! -z "$(echo $adr | grep [a-zA-Z,])" ]; then
        echo "Введен неверный IP-адрес."
	exit 1
    fi
    sed -e "/${QUE}/d" -e "/^$/d" -i /etc/hosts
    echo -e "\n$adr\t${QUE}" >> /etc/hosts
    exit 0
fi    

adr=$(cat /etc/hosts | grep -v "^#" | grep "${QUE}" | awk '{print $1}' | tail -1)
if [ ! -z "$adr" ]; then
    if [ "${QUE}" == 'bukserver' ]; then
        echo "Адрес сервера АЗС: "$adr
    else
        echo "Адрес рабочено места ${QUE}: "$adr
    fi
    echo -n "Изменить? (y/N): "
    read q
    if [ "$q" == "y" -o "$q" == "yes" ]; then
        adr=""
    fi
fi

# не "else" а повторная проверка $adr
if [ -z "$adr" ]; then
    while [ -z "$adr" ]
    do
	if [ "${QUE}" == 'bukwserver' ]; then
		echo -n "Введите IP-адрес сервера АЗС: "
	else
		echo -n "Введите IP-адрес рабочего места $QUE : "
	fi
        read adr
        if [ "$adr" == "localhost" ]; then
            adr="127.0.0.1"
        elif [ ! -z "$(echo $adr | grep [a-zA-Z,])" ]; then
            echo "Введен неверный IP-адрес."
            adr=""
        fi
    done
    sed -e "/${QUE}/d" -e "/^$/d" -i /etc/hosts
    echo -e "\n$adr\t${QUE}" >> /etc/hosts
    if [ $? -eq 0 ]; then
        if [ "$QUE" == 'bukserver' ]; then
            echo "Установлен адрес сервера АЗС: "$adr
	else
            echo "Установлен адрес рабочего места ${QUE} : "$adr
	fi
    fi
    echo "Для продолжения нажмите Enter..."
    read a
fi
exit 0

