Re: Mój ma³y skrypcik

Bart³omiej S³owik bart_ostrow_21 w o2.pl
Pi±, 22 Maj 2009, 16:41:04 CEST


hmmm calkiem calkiem :) przetestuje to jak wyjade z tych korków... :/

---- Wiadomo¶æ Oryginalna ----
Od: "£ukasz Indeka" <0h w wp.pl>
Do: sms-users w ma.krakow.pl
Data: 22 maja 2009 12:49
Temat: Mój ma³y skrypcik

> Witam,
> 
> Postanowi³em podzieliæ siê moj± radosn± twóczo¶ci±.
> Poniewa¿ 5 smsów na dzieñ w Erze to czasami ma³o (zw³aszcza gdy
> testuje siê jaki¶ nowy skrypt), a mam dostêp do wiêcej ni¿
> jednego konta na eraomnix (jak dobrze mieæ rodzinê :D), od dawna
> kombinowa³em, jak to wykorzystaæ. Wreszcie od my¶lenia przeszed³em
> do czynów i efekty przedstawiam poni¿ej. Oczywi¶cie powinno to
> równie¿ dzia³aæ dla pozosta³ych bramek.
> 
> 1. Skrypt
> Krótki, ale skuteczny:
> 
> #!/bin/sh
> 
> # get phone numbers
> phones=`cat $HOME/.smsnums`
> 
> # for each phone number
> for num in $phones; do
>     # use sms with phone specific settings
>     /usr/local/bin/sms -c $HOME/.smsrc-$num "$@"
>     if [ $? -eq 0 ]; then
>         # break on success
>         break
>     else
>         # rotate numbers on failure
>         sed -i -e '1h;1d;$G' $HOME/.smsnums
>     fi
> done
> 
> Skrypt próbuje wywo³aæ sms z kolejnymi plikami konfiguracyjnymi,
> przekazuj±æ pozosta³e parametry wywo³ania. Je¶li wys³anie siê
> nie powiedzie, dane ustawienia s± przerzucane na koniec listy. Je¶li
> wiêc dzisiaj wys³a³em ju¿ 5 smsów z pierwszego numeru telefonu i
> przy kolejnej próbie wyskoczy b³±d, to nastêpne bêd± ju¿
> zaczyna³y próby od kolejnego numeru.
> 
> 2. Konfiguracja
> a) sms
> W katalogu u¿ytkownika tworzymy dla ka¿dego konta osobny plik
> konfiguracyjny. Ja przyj±³em schemat .smsrc-numer_telefonu (mo¿e
> byæ cokolwiek). Przy okazji konfiguracja dla mojego numeru zosta³a
> podlinkowana do ~/.smsrc ¿eby siê nie nara¿aæ na rozjechanie zbyt
> wielu konfiguracji.
> 
> b) skryptu
> Lista dostêpnych konfiguracji jest zapisywana w pliku $HOME/.smsnums U
> mnie plik wygl±da mniej wiêcej tak:
> 600123456
> 600456789
> 600789456
> 
> Jak widaæ w pliku zapisujê tylko czê¶æ nazwy pliku
> konfiguracyjnego po my¶lniku.
> 
> 
> 
> Przy okazji testów okaza³o siê, ¿e wywo³anie z sms z parametrem
> -c $HOME/.smsrc nie jest równowa¿ne wywo³aniu bez tego parametru.
> Wynika to z tego, ¿e funkcja Config::ReRead nie uwzglêdnia ustawieñ z
> konstruktora klasy Config, a jedynie czy¶ci wszystkie parametry ustawione
> wcze¶niej. Skutkuje to brakiem warto¶ci domy¶lnych dla mailaddr i
> template. D³ugo siê g³owi³em co siê dzieje, bo ca³y czas
> wyskakiwa³ mi b³±d. Okaza³o siê, ¿e w plikach konfiguracyjnych
> zakomentowa³em liniê ustawiaj±c± template, bo zale¿a³o mi
> akurat na wykorzystaniu warto¶ci domy¶lnej opisanej w dokumentacji. :)
> 
> Ostatecznie przekopiowa³em wiêc kawa³ek kodu z konstrktora.
> Zastanawia³em siê czy wstawiæ tylko czê¶æ z params, ale
> ostatecznie wybra³em wszystko. Diff poni¿ej:
> 
> --- /home/tests/packages/sms/sms-2.2.3/config.cc        2009-01-17
> 15:14:10.000000000 +0100
> +++ /home/tests/packages/sms/sms-2.2.3-mod/config.cc    2009-05-08
> 15:09:15.000000000 +0200
> @@ -37,6 +37,11 @@
>  void Config::ReRead(const std::string &name)
>  {
>         params.clear();
> +       // domsylne zmienne z pliku koniguracyjnego
> +       params["mailaddr"] = EmailAddress();
> +       params["template"] = "${message}";
> +       ReadFile(string(SMS_SYSCONFDIR) + "/" + SMS_CONFIG);
> +       ReadEnv();
>         ReadFile(name);
>  }
> 
> 
> Pozdrawiam,
>    £ukasz
> -- 
> £ukasz Indeka
>   0h w wp.pl
> _______________________________________________
> Sms-users mailing list
> Sms-users w ma.krakow.pl
> http://www.ma.krakow.pl/mailman/listinfo/sms-users

-- 
Bart³omiej S³owik
GG: 1337953; tlen: bart_ostrow_21 w o2.pl ; e mail: bart_ostrow_21 w o2.pl ; http://webster21.blogspot.com


Wiêcej informacji o li¶cie dyskusyjnej Sms-users