Dodałem porównywanie tras i poprawiłem logowanie, by było bardziej zgodne z założeniami. Nie jest to fragment kodu, który mi się szczególnie podoba i nawet nie testowałem go w praktyce (ech, przydałaby się stacja testowa…), ale oznacza to, że w zasadzie całość jest gotowa – zostało przełączenie routingu dla danej trasy, jeśli jest taka potrzeba i zrobienie demona. W zasadzie przełączenie może być analogiczne jak przy tymczasowej zmianie routingu dla pojedynczego IP – jeszcze przemyślę, czy na pewno tak jest.
Czytanie aktualnego routingu
Dodałem czytanie aktualnego routingu. Żadnej magii – wywołanie ip route i parsowanie regexpem tylko tych, które mają via. Raczej PoC i będą wymagane testy. I poprawki. Na pewno przydałoby się sprawdzanie, czy dana trasa jest zdefiniowana dokładnie raz. Zastanawiam się, czy słusznie używam check_output. W sumie bezpieczniej chyba przyjąć cokolwiek i najwyżej nie mieć dopasowania już po stronie skryptu, niż dostać wyjątek. Do przemyślenia później, na razie jest z czym iść do przodu.
PS Stacji chwilowo nie robię – naszło mnie na kodzenie.
Wybór najlepszego interfejsu
Dodana kolejna funkcja, zwracająca trasy i odpowiednie dla nich najlepsze interfejsy. Napisane na szybko rano, przetestowane i poprawione przed chwilą, bo nie wiem jakim cudem napisałem rano taki bezsens. Plan był znacznie bardziej ambitny, dzień zapowiadał się pięknie i nawet zaryzykowaliśmy bonusowy wypad do centrum handlowego Posnania celem nabycia oświetlania, ale…
Zanim przejdziemy do ale dygresja nt. owego centrum. Nie wiem co jest zrobione źle. Albo nie jest skończone i nie działają wentylatory, albo jakaś awaria czujników, albo… broken by design. W każdym razie efekt jest taki, że na dość luźnym parkingu, przy braku jeżdżących aut jest duszno i mocno śmierdzi spalinami. Pierwszą rzeczą po wyjeździe było gruntowne przewietrzenie auta, nie chcę myśleć co będzie przy większym ruchu…
Inne wtopa – oprogramowanie do znajdowania trasy na tabletach (oj, można się zgubić, można…) działa w oszczędnej (Poznań, prawda? ;-)) wersji demo, zachęcającej klientów do zakupu licencji. Albo poczekania. Profesjonalnie. Niestety, fotki nie zrobiłem, bo napis zdążył zniknąć, a trochę mi się spieszyło, więc nie uruchamiałem drugi raz.
Wracając do ale: brak czasu, sponsoruje bieg Wings for Life World Run (ciekawa formuła, swoją drogą, może kiedyś się skuszę?). Nie wiedziałem, że się odbywa, więc nie sprawdziłem trasy i na powrocie utknąłem w korkach. Pewnie nie wkurzałoby, gdyby nie fakt, że bieg najpierw blokował główną ulicę z jednej strony centrum, a potem… inną ulicę z drugiej strony centrum. Jak doczytałem później, w międzyczasie jeszcze trzecią ulicę. Generalnie wjazd do centrum w praktyce wyłączony na ponad godzinę (stawka mocno rozciągnięta…), miasto totalnie zablokowane, bo korki się skumulowały, podobno 800 aut stało na rondzie Śródka.
Nie wiem co za umysł wytyczył tak trasę, ale jeśli chce w ten sposób zniechęcić ludzi do biegów czy też tej konkretnej imprezy, to jest na doskonałej drodze. Bo rozumiem start w centrum, przebiegnięcie przez centrum i jakieś utrudnienia w ruchu, żeby biegacze „byli widoczni”, ale totalna blokada centrum i pałętanie się biegaczy przez godzinę? Noż wyraz.
W każdym razie po godzinie stania w korku cała energia i chęć pisania czegokolwiek poszły się paść, więc tylko poprawki, ten wpis i tyle. Sondy dziś nie będzie.
PS Oświetlenie kupiłem.