[Bash] Rođendani pri startu shella

C, C++, Java, PHP, Ruby...

Moderator/ica: Moderatori/ce

Pravila foruma
U naslovu teme unutar uglatih zagrada navesti o kojem jeziku je riječ. Primjer: [Java]
Odgovori
Avatar
4ndY
Moderator
Postovi: 4060
Pridružen/a: 15 svi 2008, 18:05
Spol: M
OS: Fedora/KDE
Lokacija: Hamburg, DE
Kontakt:

[Bash] Rođendani pri startu shella

Post 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.
A neutron walks into a bar; he asks the bartender, 'How much for a beer?' The bartender looks at him, and says 'For you, no charge.'
Avatar
Medojedni jazavac
Postovi: 1536
Pridružen/a: 22 tra 2012, 08:55
Spol: M
OS: eOS Luna
Lokacija: ForHill Croatia
Kontakt:

Re: [Bash] Rođendani pri startu shella

Post 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.
stefan je napisao/la:tu mač gemišta
To understand recursion, you must first understand recursion.
Avatar
4ndY
Moderator
Postovi: 4060
Pridružen/a: 15 svi 2008, 18:05
Spol: M
OS: Fedora/KDE
Lokacija: Hamburg, DE
Kontakt:

Re: [Bash] Rođendani pri startu shella

Post 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
A neutron walks into a bar; he asks the bartender, 'How much for a beer?' The bartender looks at him, and says 'For you, no charge.'
Avatar
Medojedni jazavac
Postovi: 1536
Pridružen/a: 22 tra 2012, 08:55
Spol: M
OS: eOS Luna
Lokacija: ForHill Croatia
Kontakt:

Re: [Bash] Rođendani pri startu shella

Post 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 :)
stefan je napisao/la:tu mač gemišta
To understand recursion, you must first understand recursion.
Avatar
tomog999
Postovi: 125
Pridružen/a: 03 ožu 2011, 18:18
Spol: M
OS: mint14Cina/Centos6
Lokacija: Zagreb

Re: [Bash] Rođendani pri startu shella

Post Postao/la tomog999 »

...
if [ -z "$SSH_CLIENT" ]
...
Kako si odlučio testirati baš na temelju te varijable.
You love SSH dat mač :mrgreen:
To all you "rvacki pravopis" haters, we're gona blow your planet up
we got death star(death star)
and you know that we got it(death star)

Darth Spellingius :D
Avatar
4ndY
Moderator
Postovi: 4060
Pridružen/a: 15 svi 2008, 18:05
Spol: M
OS: Fedora/KDE
Lokacija: Hamburg, DE
Kontakt:

Re: [Bash] Rođendani pri startu shella

Post 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.
A neutron walks into a bar; he asks the bartender, 'How much for a beer?' The bartender looks at him, and says 'For you, no charge.'
Odgovori