#!/bin/sh # "konfigurator" dla wszystkich skryptów # UWAGA: istnieją sytuacje, w których autokonfiguracja może nie zadziałać. # wtedy wyedytuj sobie ręcznie plik "smsrc". # # Sebastian Zagrodzki # Jacek Fiok [ -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 skryptów: [$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 mogłem 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-emulator" echo -n "Podaj ścieżkę dla netcata (lub skryptu nc-emulator poprzedzonego przez \". \"; zwróć uwagę na spację) [$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 pełną ścieżkę dostępu do sendmaila, oraz potrzebne opcje do wysłania listu ze standardowego wejścia: [$WYSYLACZ] " read NEWWYSYLACZ [ -n "$NEWWYSYLACZ" ] && WYSYLACZ="$NEWWYSYLACZ" if [ ! -x "`echo "$WYSYLACZ" | cut -f 1 -d " "`" ]; then echo "Nie znalazłem sendmaila ($WYSYLACZ)" echo "Nie bedziesz mogl wysylac smsów 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 pełną ścieżkę do mmencode: [$MM] " read NEWMM [ -n "$NEWMM" ] && MM="$NEWMM" # [ -z "$PRZEGLADARKA" ] && PRZEGLADARKA="Links (current; Linux 2.2.14 i586)" [ -z "$PRZEGLADARKA" ] && PRZEGLADARKA="Mozilla/5.0 Galeon/1.2.7 (X11; Linux i686; U;) Gecko/20021216" 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 "Ścieżka do skryptu nopl [$NOPL]: " read NEWNOPL [ -n "$NEWNOPL" ] && NOPL="$NEWNOPL" else echo "Nie znalazłem 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 ścieżkę 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 "Ścieżka 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 numerów [$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|693|695|697) SKRYPT="$KATALOG/sms.pluswww" ;; 600|602|604|606|608|610|692|694|696|698) SKRYPT="$KATALOG/sms.eraomnix.pl" ;; 501|502|503|504|505|506|507|508|509) SKRYPT="$KATALOG/sms.1rstwap.pl" ;; *) SKRYPT="" ;; esac echo -n "Skrypt do użycia w .powiadom [$SKRYPT]: " read NEWSKRYPT [ -n "$NEWSKRYPT" ] && SKRYPT="$NEWSKRYPT" echo "OPCJONALNIE - jeśli wybrana bramka wymaga zalogowania się:" echo "(jeśli nie - pozostaw puste wartości wciskając ENTER)" echo echo -n "Użytkownik na bramce: " read NEWBRAMKA_USER [ -n "$NEWBRAMKA_USER" ] && BRAMKA_USER="$NEWBRAMKA_USER" echo -n "Hasło na bramce: " read NEWBRAMKA_PASSWORD [ -n "$NEWBRAMKA_PASSWORD" ] && BRAMKA_PASSWORD="$NEWBRAMKA_PASSWORD" cat >> $CONFIG << EOF ### KONFIGURACJA LOKALNA (powiadom) TELEFON="$TELEFON" SKRYPT="$SKRYPT" BRAMKA_USER="$BRAMKA_USER" BRAMKA_PASSWORD="$BRAMKA_PASSWORD" EOF if [ ! -r "$SKRYPT" -o ! -r "$POWIADOM" ]; then [ ! -r "$SKRYPT" ] &&\ echo "Nie mogłem przeczytać skryptu ($SKRYPT)" [ ! -r "$POWIADOM" ] &&\ echo "Nie mogłem przeczytać powiadom ($POWIADOM)" echo "Przetestowanie skryptu jest niemożliwe" 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ś poszło nie tak :(" # fi echo -e "\nKoniec konfiguracji.\n" fi fi fi