#!/bin/sh

[ -r /usr/local/share/sms/smsrc ] && . /usr/local/share/sms/smsrc
[ -r /etc/smsrc ] && . /etc/smsrc
[ -r $HOME/etc/smsrc ] && . $HOME/etc/smsrc
[ -r $HOME/.smsrc ] && . $HOME/.smsrc

echo "### USTAWIENIA GLOBALNE ###"

[ -z "$KATALOG" -a -f ./powiadom ] && KATALOG=$PWD
[ -z "$KATALOG" -a `id -u` = 0 ] && KATALOG=/usr/local/share/sms
[ -z "$KATALOG" ] && KATALOG=$HOME/.sms
echo -n "Podaj sciezke dostepu do katalogu dla skryptw: [$KATALOG] "
read NEWKATALOG
[ -n "$NEWKATALOG" ] && KATALOG="$NEWKATALOG"
if [ ! -d "$KATALOG" ]; then
	echo "Tego katalogu nie ma!"
	echo -n "Czy mam go stworzyc? [y]"
	read ODP
	[ ! "${ODP#y}" = "$ODP" -o ! "${ODP#Y}" = "$ODP" -o -z "$ODP" ]	&&\
	mkdir -p "$KATALOG" >/dev/null 2>&1
	if [ ! "$?" = "0" ]; then
		echo "Nie mogem utworzy katalogu $KATALOG!"
		exit 1
	fi
fi
if [ ! "$KATALOG" = "$PWD" -a `id -u` = 0 ]; then
	echo -n "Czy skopiowa skrypty do $KATALOG ? [y] "
	read ODP
	[ ! "${ODP#y}" = "$ODP" -o ! "${ODP#Y}" = "$ODP" -o -z "$ODP" ]	&&\
	cp -a * "$KATALOG"
fi

[ -z "$NETCAT" -a -x /bin/nc ] && NETCAT="/bin/nc"
[ -z "$NETCAT" -a -x /usr/bin/nc ] && NETCAT="/usr/bin/nc"
[ -z "$NETCAT" -a -x /usr/local/bin/nc ] && NETCAT="/usr/local/bin/nc"
[ -z "$NETCAT" -a ! "`id -u`" = 0 -a -x "$HOME/bin/nc" ] && NETCAT="$HOME/bin/nc"
[ -z "$NETCAT" ] && NETCAT=". $KATALOG/nc"
echo -n "Podaj ciek dla netcata (lub skryptu nc poprzedzonego przez \".\") [$NETCAT] "
read NEWNETCAT
[ -n "$NEWNETCAT" ] && NETCAT="$NEWNETCAT"

[ -z "$TIMEOUT" ] && TIMEOUT="20"
echo -n "Podaj maksymalny czas oczekiwania dla netcata [$TIMEOUT] "
read NEWTIMEOUT
[ -n "$NEWTIMEOUT" ] && TIMEOUT="$NEWTIMEOUT"

[ -z "$WYSYLACZ" -a -x /usr/bin/sendmail ] && WYSYLACZ="/usr/bin/sendmail -t"
[ -z "$WYSYLACZ" -a -x /usr/sbin/sendmail ] && WYSYLACZ="/usr/sbin/sendmail -t"
[ -z "$WYSYLACZ" ] && WYSYLACZ="/usr/lib/sendmail -t"
echo -n "Podaj pen ciek dostpu do sendmaila, oraz potrzebne opcje do wysania listu ze standardowego wejcia: [$WYSYLACZ] "
read NEWWYSYLACZ
[ -n "$NEWWYSYLACZ" ] && WYSYLACZ="$NEWWYSYLACZ"
if [ ! -x "`echo "$WYSYLACZ" | cut -f 1 -d " "`" ]; then
	echo "Nie znalazem sendmaila ($WYSYLACZ)"
	echo "Nie bedziesz mogl wysylac smsw na bramki pocztowe (plusmail, ideamail)"
fi

[ -z "$MM" -a -x /bin/mmencode ] && MM="/bin/mmencode"
[ -z "$MM" -a -x /usr/bin/mmencode ] && MM="/usr/bin/mmencode"
[ -z "$MM" -a -x /usr/local/bin/mmencode ] && MM="/usr/local/bin/mmencode"
[ -z "$MM" -a ! "`id -u`" = 0 -a -x $HOME/bin/mmencode ] && MM="$HOME/bin/mmencode"
[ -z "$MM" ] && MM="/usr/bin/mmencode"
echo -n "Podaj pen ciek do mmencode: [$MM] "
read NEWMM
[ -n "$NEWMM" ] && MM="$NEWMM"

[ -z "$PRZEGLADARKA" ] && PRZEGLADARKA="Links (current; Linux 2.2.14 i586)"
echo -n "Domyslna przegladarka [$PRZEGLADARKA]: "
read NEWPRZEG
[ -n "$NEWPRZEG" ] && PRZEGLADARKA="$NEWPRZEG"

[ -z "$ADR_ZWROT" -a -r /etc/HOSTNAME ] && ADR_ZWROT="`id -un`@`cat /etc/HOSTNAME`"
[ -z "$ADR_ZWROT" ] && ADR_ZWROT="`id -un`@`hostname`"
echo -n "Zwrotny adres pocztowy [$ADR_ZWROT]: "
read NEWADR
[ -n "$NEWADR" ] && ADR_ZWROT="$NEWADR"

if [ -x "$MM" ]; then
	[ -z "$NOPL" ] && NOPL="$KATALOG/nopl"
	echo -n "cieka do skryptu nopl [$NOPL]: "
	read NEWNOPL
	[ -n "$NEWNOPL" ] && NOPL="$NEWNOPL"
else
	echo "Nie znalazem programu mmencode [$MM]"
	echo "Nie ustawi konfiguracji dla bramki www i skryptu nopl"
	NOPL=""
fi

[ -z "$BRAMKA" -a -r "$KATALOG/bramka-common" ] && BRAMKA="$KATALOG/bramka-common"
echo -n "Podaj ciek do bramka-common [$BRAMKA]: "
read NEWBRAMKA
[ -n "$NEWBRAMKA" ] && BRAMKA="$NEWBRAMKA"

if [ "`id -u`" = 0 ]; then
	[ -w /etc/smsrc ] && CONFIG="/etc/smsrc"
	[ -z "$CONFIG" -a -w /usr/local/share/sms/smsrc ] && CONFIG="/usr/local/share/sms/smsrc"
	[ -z "$CONFIG" ] && CONFIG="/etc/smsrc"
else
	[ -w $HOME/etc/smsrc ] && CONFIG="$HOME/etc/smsrc"
	[ -z "$CONFIG" -a -w $HOME/.smsrc ] && CONFIG="$HOME/.smsrc"
	[ -z "$CONFIG" -a -d $HOME/etc ] && CONFIG="$HOME/etc/smsrc"
	[ -z "$CONFIG" ] && CONFIG="$HOME/.smsrc"
fi
echo -n "cieka dla pliku konfiguracyjnego [$CONFIG]: "
read NEWCONF
[ -n "$NEWCONF" ] && CONFIG="$NEWCONF"
if [ -w "$CONFIG" ]; then
	echo "Plik ju instnieje!"
	echo -n "Zrobic kopie zapasowa? [y] "
	read ODP
	[ ! "${ODP#y}" = "$ODP" -o ! "${ODP#Y}" = "$ODP" -o -z "$ODP" ]	&&\
	mv "$CONFIG" "$CONFIG~bak~"
fi

cat > "$CONFIG" << EOF
## PLIK WYGENEROWANY AUTOMATYCZNIE
# KONFIGURACJA GLOBALNA (DLA WSZYSTKICH SKRYPTOW)
KATALOG="$KATALOG"
NETCAT="$NETCAT"
TIMEOUT="$TIMEOUT"
WYSYLACZ="$WYSYLACZ"
MM="$MM"
PRZEGLADARKA="$PRZEGLADARKA"
ADR_ZWROT="$ADR_ZWROT"
NOPL="$NOPL"
BRAMKA="$BRAMKA"
EOF

if [ ! "$CONFIG" = "/etc/smsrc" ]; then
	echo "### KONFIGURACJA LOKALNA (sms-dialog) ###"
	if [ -z "$DATA_DIR" ]; then
		DATA_DIR=.sms
	fi
	if [ "$DATA_DIR" = "${DATA_DIR#/}" ]; then
		DATA_DIR="$HOME/$DATA_DIR"
	fi
	[ -z "$LOGI" ] && LOGI="$DATA_DIR/logi"
	[ -z "$LISTA" ] && LISTA="$DATA_DIR/lista"
	echo -n "Lista numerw [$LISTA]: "
	read NEWLISTA
	[ -n "$NEWLISTA" ] && LISTA="$NEWLISTA"
	echo -n "Plik z logami [$LOGI]: "
	read NEWLOGI
	[ -n "$NEWLOGI" ] && LOGI="$NEWLOGI"
	cat >> $CONFIG << EOF

### KONFIGURACJA LOKALNA (sms-dialog) ###
LISTA="$LISTA"
LOGI="$LOGI"
EOF
	echo "### KONFIGURACJA LOKALNA (powiadom) ###"
	
	[ -z "$POWIADOM" ] && POWIADOM="$KATALOG/powiadom"
	
	echo -n "Lokalizaja powiadom [$POWIADOM]: "
	read NEWPOW
	[ -n "$NEWPOW" ] && POWIADOM="$NEWPOW"
	
	echo -n "Numer telefonu [$TELEFON]: "
	read NEWTEL
	[ -n "$NEWTEL" ] && TELEFON="$NEWTEL"
	PREFIX="`echo "$TELEFON" | cut -c 1-3`"
	case "$PREFIX" in
		601|603|605|607|609|691)
			SKRYPT="$KATALOG/sms.pluswww"
			;;
		600|602|604|606|608|610|692)
			SKRYPT="$KATALOG/sms.era"
			;;
		501|502|503|504|505|506)
			SKRYPT="$KATALOG/sms.ideawww"
			;;
		*)
			SKRYPT=""
			;;
	esac
	
	echo -n "Skrypt do uycia w .powiadom [$SKRYPT]: "
	read NEWSKRYPT
	[ -n "$NEWSKRYPT" ] && SKRYPT="$NEWSKRYPT"

	cat >> $CONFIG << EOF

### KONFIGURACJA LOKALNA (powiadom)
TELEFON="$TELEFON"
SKRYPT="$SKRYPT"
EOF

	if [ ! -r "$SKRYPT" -o ! -r "$POWIADOM" ]; then
		[ ! -r "$SKRYPT" ] &&\
			echo "Nie mogem przeczyta skryptu ($SKRYPT)"
		[ ! -r "$POWIADOM" ] &&\
			echo "Nie mogem przeczyta powiadom ($POWIADOM)"
		echo "Przetestowanie skryptu jest niemoliwe"
	else
		echo -n "Czy chcesz teraz przetestowa skrypt? [y] "
		read ODP
		if [ ! "${ODP#y}" = "$ODP" -o ! "${ODP#Y}" = "$ODP" -o -z "$ODP" ]; then
			/bin/sh "$POWIADOM" << EOF
From: tester@skryptu.sms
To: somebody@somewhere.com
Subject: test ok

tresc...
EOF
			if [ "$?" = "0" ]; then
				echo "Wszystko poszlo dobrze (przynajmniej od strony technicznej). Sprawdz, czy dostaniesz SMSa (to moze potrwac)"
			else
				echo "Co poszo nie tak :("
			fi
		fi
	fi
fi	
