Powiadomienie głosowe o przywróceniu internetu
Wszystko nad czym pieczę trzyma człowiek ma to do siebie, że może czasem się popsuć. Tak też jest z internetem. Nie wiadomo od jak dobrego dostawcy będziemy go mieli, zawsze może nadejść ten dzień, gdy zabraknie dostępu do sieci. W takim przypadku czekamy oczywiście na jego powrót. A zamiast co chwilę sprawdzać ręcznie, czy wszystko zostało już naprawione, możemy posłużyć się sprytnym skryptem.
OS X wyposażono w syntezator mowy. Narzędzie to od wielu lat „siedzi” sobie na naszych komputerach, w większości przypadków nieużywane. Czas jednak poprosić Pana Aleksa (który jest domyślnym głosem w języku angielskim) lub Ewę albo Zosię (oczywiście polskie głosy), aby nam pomogli.
Trik polega na połączeniu trzech narzędzi w pewnego rodzaju pętlę. Całość jest dość prosta i można zawrzeć ją w jednej linijce (bo będzie to polecenie do wykonania w Terminalu):
until ping -W1 -c1 google.com; do sleep 5; done && say internet już wrócił
Teraz krótkie objaśnienie:
ping -W1 -c1 google.com
– pingujemy adresgoogle.com
jeden raz z czasem oczekiwania na pakiet wynoszącym 1 milisekundę;sleep 5
– wstrzymanie przez 5 sekund;until … do … done
– to jest nasza pętla, która wywołuje pierwszą opisaną komendę, a gdy nie nadejdzie odpowiedź jest wstrzymywana na pięć sekund (druga opisana komenda), po czym wykonuje operację od nowa;&& say internet już wrócił
– jeśli narzędzieping
otrzyma odpowiedź, pętla się skończy, a po niej (oznaczenie&&
) zostanie wywołane właśnie to polecenie nakazujące uruchomienie syntezatora mowy, który ma wypowiedzieć słowa „internet już wrócił” (oczywiście tekst można zmienić na inny).
Odnośnie polecenia say
. Tak jak wspomniałem na początku, domyślnym głosem jest Alex, który niekoniecznie umie w naszym rodzimym języku czytać. Aby to zmienić musimy pobrać dodatkowy pakiet syntezatora mowy którejś z pań: Ewy lub Zosi. W tym celu uruchamiamy Preferencje systemowe i wybieramy Dyktowanie i mowa.
Następnie przechodzimy do zakładki Synteza mowy, a z zakładki Głos systemowy wybieramy opcję Dostosuj….
W oknie wybierania mowy wskazujemy którąś z wymienionych wcześniej pań (bądź zaznaczamy obie).
Po zatwierdzeniu rozpocznie się pobieranie pakietu mowy (ponad 100 MB na pakiet). Po tym polecenia wykonywane za pomocą say
będą odczytywane w języku polskim, kobiecym głosem.
Polecenie informowania o przywróceniu internetu warto zapisać jako skrypt wykonywalny, aby nie było potrzeby zapamiętywania całej komendy. W tym celu w edytorze tekstowym (np. TextEdit) wklejamy poniższy tekst:
#!/bin/bash
until ping -W1 -c1 google.com; do sleep 5; done && say internet już wrócił
Następnie zapisujemy plik z rozszerzeniem .command
, np. internet.command
w jakimś wygodnym dla nas miejscu (np. w katalogu domowym). Następnie w Terminalu wpisujemy poniższą komendę dającą prawa do wykonywania skryptu:
chmod a+x /ścieżka/dopliku/internet.command
Teraz wystarczy, że dwukrotnie klikniemy plik internet.command
w Finderze, a Terminal sam się otworzy i uruchomi polecenie sprawdzające połączenie.
Źródło: OS X Daily
Komentarze: 6
a mi się zapisuje .rtf i nie chce się zapisać .command
A w jakim edytorze zapisujesz? Jeśli w TextEdit, to wejdź w menu Format i tam wybierz Zamień na tekst zwykły. Teraz wciśnij Shift+Alt+Cmd+S i jeszcze raz nadaj nazwę i rozszerzenie .command. Powinno zadziałać.
dziękuję,
Fajne.
Komenda say ma też opcję -v [nazwa głosu] co pozwala “w locie” zmieniać głosy i języki (o ile są zainstalowane) bez konieczności zmiany ustawienia standardowego głosu. Zakładając więc, że ktoś ma ustawiony jako standardowy głos Agaty (która umie czytać po polsku), może dla urozmaicenia końcówkę powyższego polecenia zapisać:
&& say -v Alex the internet is back
Fajnie, że ktoś ma tak szybki internet, żeby google.com odpowiedział w 1ms, lepiej 30 ustawić ;)