Monday, February 19, 2007

Dogonić czas z awk

Ostatnimi czasy łapię się na tym, że ciągle brakuje mi czasu. Zazwyczaj jest to oznaka złego planowania, więc postanowiłem coś z tym fantem zrobić. Najporościej skorzystać kalendarz. I tu pojawia się pierwszy problem: papierowy, czy elektroniczny. Każdy z nich ma swoje zalety i wady, ale z uwagi na to, że 90% zajęć wykonuję na komputerze, zdecydowałem się na drugą opcję.
Teraz przyszedł czas na wybór narzędzia. W zasadzie rozważałem dwa: Sunbird - kalendarz ze stajni Mozilli, albo GoogleCalendar - działający przez WWW. Pierwszego nie było (nie rozumiem dlaczego) spakietowanego dla ArchLinuxa, drugi jakoś nie przypadł mi do gustu. Nie miając wyboru, otworzyłem edytor tekstu i wyskrobałem jakiegoś potworka w Pythonie, z kilkoma opcjami itd. To też nie było to, bo szukam czegoś naprawdę banalnego: dodawanie notatek o zadaniach i ich wyświetlanie. No więc zmajstrowałem pliczek o oryginalnej nazwie kalendarz.txt i wpisałem tam plan najbliższych zajęć - jedno zdarzenie - jedna linia. Format opisu jest następujący: YYYY-MM-DD opis zdarzenia.
Jeśli zadania wpisuje się w porządku chronologicznym i sprząta się listę regularnie, takie rozwiązanie może okazać się wystarczająco. Ponieważ jednak nie planuję żadnej z tych rzeczy, sięgnąłem po AWK - język przetwarzania tekstu i napisałem taki skrypt (daily.awk):

$1 == strftime("%F") {print $0}


Polecenie gawk -f daily.awk kalendarz.txt, plik z wydarzeniami jest przeszukiwany, a na ekranie wyświetlane są tylko te linie, w których pierwszy wyraz jest równy aktualnej dacie w formacie YYYY-MM-DD.
Prawda, że proste? Teraz wystarczy dodać taki skrypt do Crona i każdego dnia będzie się wyświetlała lista zdań do wykonania. Mała rzecz, a cieszy :)

No comments: