Stranica: 1/1.

[Bash] Rođendani pri startu shella

Postano: 15 sij 2013, 13:44
Postao/la 4ndY
Oni koji se nalaze u opisu da svakondevno koriste shell/konzolu/terminal i pri tome zaboravljaju na rođendane, a nemaju Fejs ili drugo rješenje da ih podsjeti, moglo bi ih zanimati moje rješenje tog problema :mrgreen:

Treba u .bashrc (~/.bashrc) dodati sljedeće linije:

Kod: Označi sve

# Birthdays
if [ -z "$SSH_CLIENT" ]; then
        echo "Upcoming birthdays"
        today=`date +%d.%m.`
        grep -A 3 $today ~/.rodjendani.txt
fi
te napraviti datoteku ".rodjendani.txt" u kojoj se nalaze rodjendani osoba u ovom formatu:

Kod: Označi sve

21.04.   Ime Prezime 1, Ime Prezime 2...
28.11.   Ime Prezime...
Efekt je sljedeći: svaki put kad pokrenete novi prozor konzole ispišu vam se na početku nadolazeći rođendani (uključujući i taj dan). Onaj tko želi da se to događa samo jednom dnevno može dodati da se rođendani ispisuju samo kad ne postoji neka tmp datoteka za taj dan koja se napravi čim se rođendani prvi put prikažu taj dan, npr. ;)

Ja sam svoje rođendane exportao s Fejsa još kad sam ga imao (pomoću neke aplikacije Birthday exporter, tako nešto...) i onda sam dobivenu datoteku konvertirao pomoću kratke Python skripte:

Kod: Označi sve

#!/usr/bin/python
# -*- coding: utf-8 -*-

inputdata = open('rođendani.txt', 'r')
month = 0

for line in inputdata:
        try:
                int( line[0] )
                day, names = line.split(' - ')
                month_zero = "%02d" % month
                print str(day.strip())+'.'+month_zero+'.\t'+names,
        except:
                month += 1

inputdata.close()
Eto, da više ne zaboravljate rođendane kao ja 8-)

EDIT: dodana provjera (if) radi li se o SSH pristupu jer ako postoji ispis u terminal kod SSH-a onda neki alati poput rsynca neće raditi.

Re: [Bash] Rođendani pri startu shella

Postano: 15 sij 2013, 14:03
Postao/la Medojedni jazavac
Ja sam isto dosel na ideju da napravim istu stvar ko ti, al sam onda naletel na jedan superioran program - remind.

Re: [Bash] Rođendani pri startu shella

Postano: 15 sij 2013, 15:19
Postao/la 4ndY
Medojedni jazavac je napisao/la:Ja sam isto dosel na ideju da napravim istu stvar ko ti, al sam onda naletel na jedan superioran program - remind.
Zanimljivo - kako vidim iz dokumentacije podešavanje i učenje remind-a mi je sad više od 5min posla koliko mi je trebalo da napišem ovo iznad :) Definitivno ću proučiti čim ću trebati nešto kompliciranije jer se čini kao _ultimate_ podsjetnik ::bravo

Re: [Bash] Rođendani pri startu shella

Postano: 15 sij 2013, 15:23
Postao/la Medojedni jazavac
Je. Ima vise nacina ipisa: kalendar, lista,...; te je jako super jer se ispis moze formatirati na razne nacine. Npr., da ispisuje koliko je dana ostalo do eventa, i jos kompleksnije.

Ja ga imam skonfiguriran sa conkyem :)

Re: [Bash] Rođendani pri startu shella

Postano: 15 sij 2013, 18:34
Postao/la tomog999
...
if [ -z "$SSH_CLIENT" ]
...
Kako si odlučio testirati baš na temelju te varijable.
You love SSH dat mač :mrgreen:

Re: [Bash] Rođendani pri startu shella

Postano: 15 sij 2013, 18:43
Postao/la 4ndY
tomog999 je napisao/la: Kako si odlučio testirati baš na temelju te varijable.
You love SSH dat mač :mrgreen:
Iskreno? To mi je prva printenv varijabla koja mi je upala u oko da je "ssh-sepcific" iako sam mogao uzet i bilo koju drugu :D , a bug u prvoj verziji (bez tog testa) uočio sam u rsyncu (-e ssh) koji više nije radio dok sam stavio da bashrc ima ispis.