#!/bin/sh # sms-dialog: prosty programik "interaktywny" do wysyłania sms-ów # Sebastian Zagrodzki # Jacek Fiok # Strona domowa: sms.jfiok.org [ -r /etc/smsrc ] && . /etc/smsrc [ -r $HOME/etc/smsrc ] && . $HOME/etc/smsrc [ -r $HOME/.smsrc ] && . $HOME/.smsrc [ -z "$KATALOG" ] && KATALOG=/usr/local/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" clear # czysc ekran na wyjsciu! 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 "Wysyłanie wiadomości" \ --inputbox "\nNumer telefonu" 9 70 \ 2>$TMP if [ ! "$?" = "0" ]; then continue fi NUMER="`cat $TMP`" fi while true; do dialog \ --title "Wysyłanie wiadomości - $NUMER" \ --inputbox "\nTreść wiadomości" 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 )) break # po wyslaniu -> main fi done done