#!/bin/sh
[ -r /etc/smsrc ] && . /etc/smsrc
[ -r $HOME/etc/smsrc ] && . $HOME/etc/smsrc
[ -r $HOME/.smsrc ] && . $HOME/.smsrc

[ -z "$KATALOG" ] && KATALOG=/usr/share/sms
[ -z "$BRAMKA" -a -f "$KATALOG/bramka-common" ] && BRAMKA="$KATALOG/bramka-common"
[ -z "$LOGI" ] && LOGI=$HOME/.sms/logi
[ -z "$LISTA" ] && LISTA=$HOME/.sms/lista
[ ! -d "`dirname $LOGI`" ] && mkdir -p "`dirname $LOGI`"
[ ! -d "`dirname $LISTA`" ] && mkdir -p "`dirname $LISTA`"
[ ! -r "$LISTA" ] && touch "$LISTA"

if [ -z "$BRAMKA" ]; then
	echo "Nie mog znale skryptu bramka-common!"
	exit 127
fi

trap "rm -f $TMP" INT QUIT KILL ALRM TERM STOP TSTP

TMP=`mktemp /tmp/sms.XXXXXX`

while true; do
	eval dialog \
	--title "SMS" \
	--menu "Numer" 20 70 13 \
	`cat "$LISTA" | sed 's/\([0-9]\+\)[[:space:]]*\(.*\)/\"\1\" \"\2\"/'` \
	"\"<< ... >>\"" "\"inny numer\"" \
	"\"<< +++ >>\"" "\"dopisz nowy numer\"" \
	2>$TMP

	if [ ! "$?" = "0" ]; then
		rm -f "$TMP"
		exit 1
	fi
	
	NUMER="`cat $TMP`"

	if [ "$NUMER" = "<< +++ >>" ]; then
		dialog \
		--title "Dodawanie nowego telefonu" \
		--inputbox "\nNumer telefonu" 9 70 \
		2>$TMP
		if [ ! "$?" = "0" ]; then
			continue
		fi
		NUMER="`cat $TMP`"
		
		dialog \
		--title "Dodawanie nowego telefonu" \
		--inputbox "\nOpis" 9 70 \
		2>$TMP
		if [ ! "$?" = "0" ]; then
			continue
		fi
		OPIS="`cat $TMP`"

		echo -e "$NUMER\t$OPIS" >> $LISTA
		continue
	fi
	
	if [ "$NUMER" = "<< ... >>" ]; then
		dialog \
		--title "Wysyanie wiadomoci" \
		--inputbox "\nNumer telefonu" 9 70 \
		2>$TMP
		if [ ! "$?" = "0" ]; then
			continue
		fi
		NUMER="`cat $TMP`"
	fi

	while true; do
		dialog \
		--title "Wysyanie wiadomoci - $NUMER" \
		--inputbox "\nTre wiadomoci" 9 70 \
		2>$TMP
        	if [ ! "$?" = "0" ]; then
			break
		fi
		WIADOMOSC="`cat $TMP`"
	
		if [ -n "$WIADOMOSC" ]; then            # jest co wyslac
			echo -e "$NUMER\n$WIADOMOSC" |\
			sh "$BRAMKA" >$TMP 2>&1
                        RETCODE=$?
			echo "$NUMER :$RETCODE: $WIADOMOSC" >> $LOGI
                        if [ $RETCODE -eq 0 ]; then
        			STATUS="`cat $TMP`"
                        else
                           STATUS="`cat $TMP`"" ($RETCODE) "
                        fi
			dialog \
			--title "Status" \
			--msgbox " $STATUS" 8 $(( ${#STATUS} + 8 ))
		fi
	done
done
