#!/bin/bash
#################################################################
# Naptr, az elterjedt DOS-os program egyszer shell vltozata  #
#   az eredeti adatllomnyok felhasznlsval --- 1.1v         #
# Szerzo: Nemeth Laszlo <nemethl@sol.cc.u-szeged.hu>            #
# Felhasznlt ,,irodalom:''                                     #
#   man bash/test/date/awk/cut/console-codes  (man-pages-1.21)  #
#   Kernighan & Pike: A UNIX op. rendszer                       #
#   Bagoly Zs.--Papp G.: UNIX alapismeretek                     #
# Msoljuk az /usr/bin knyvtrba, s ha minden felhasznlnak  # 
# belltjuk, az /etc/profile fajlt bvtsk ki a naptar sorral.#
#################################################################

# Ha nincs, akkor letrehozza a felhasznloi definicios allomanyt
test -e ~/.naptar/naptar.dat || (mkdir &> /dev/null ~/.naptar; grep "^;" $0 > ~/.naptar/naptar.dat )

# A $TOMB awk forras, amit ketszer hasznalunk fel ebben a szkriptben
# Sztringgel indexelt tomboket es konzol vezerloszekvenciakat tartalmaz
TOMB='
  BEGIN {nap["0"]="vasrnap";
  nap["1"]="htf";
  nap["2"]="kedd";
  nap["3"]="szerda";
  nap["4"]="cstrtk";
  nap["5"]="pntek";
  nap["6"]="szombat";
  honap["01"]="janur";
  honap["02"]="februr";
  honap["03"]="mrcius";
  honap["04"]="prilis";
  honap["05"]="mjus";
  honap["06"]="jnius";
  honap["07"]="jlius";
  honap["08"]="augusztus";
  honap["09"]="szeptember";
  honap["10"]="oktber";
  honap["11"]="november";
  honap["12"]="december";  
  ON="\033[1m";
  OFF="\033[0m";
  }'

# Megadott nvhez ($1) tartoz nvnap dtumnak kilistzsa e szkriptbol ($0)
test -z "$1" || { grep ^[0-1] $0 | grep $1 | awk "$TOMB"'
  {print ON honap[substr($1,1,2)] " " sprintf("%d",substr($1,3,2)) OFF " " substr($0,6,80)}
  '; exit }
  
# Naptri informcik megjelentse
VONAL="\033[36m\033[1m------------------------------------------------------------------------------\033[0m"
HONAP=`date +%m`
NAP=`date +%d`
echo -e $VONAL
echo `date +"%w %Y %m %d %W %j %k %M %S"` `date --date "31 dec" +%j`  | awk "
  $TOMB"'
  {print "Ma "ON nap[$1] OFF" van, "ON $2 ". "honap[$3]" "sprintf("%d",$4)"."OFF;
  print "Ez az v "ON sprintf("%d",$5+1) ". " OFF "hete s " ON sprintf("%d",$6) ". " OFF "napja, mg "ON sprintf("%d", $10 - $6) OFF " nap van htra az vbl.";
  print "Az id: "ON $7 OFF" ra "ON sprintf("%d", $8) OFF " perc s "ON sprintf("%d", $9) OFF " msodperc.";
  }'
grep ^$HONAP$NAP $0 | 
  awk -F"\t" '{print "Boldog nvnapot kedves \033[33m\033[1m"$2"\033[0m nev felhasznlinknak!"}'
HOLNAP=`date --date '1 day' +%m%d`
echo -n "Elkvetkezend nvnapok:"`grep ^$HOLNAP $0 | cut -b 5-80`"; "
HOLNAP=`date --date '2 days' +%m%d`
echo -n `grep ^$HOLNAP $0 | cut -b 5-80`"; "
HOLNAP=`date --date '3 days' +%m%d`
echo -e `grep ^$HOLNAP $0 | cut -b 5-80`"\033[35m\033[1m"

# Kiszurjuk a felhasznaloi def. allomanybol is a mai napra vonatkozo sorokat
grep "^0000
^"00"$NAP
^$HONAP"00"
^$HONAP$NAP" ~/.naptar/naptar.dat | cut -b 6-80 
echo -e $VONAL
exit
;
;                                  naptar.dat
;
;
;
;  A naptar.dat llomny a naptar prg. tartozka. Ennek segtsgvel sajt
;  vfordulinkat; bartaink, ismerseink szletsnapjt, nevezetes esem-
;  nyeket is "megjegyeztethetnk" a programmal.  A felhasznl ltal bert
;  sorok lila sznnel jelennek meg.
;
;
;  A kvetkez forma hasznlatos:  A felhasznl zenete egy ngy karakte-
;  res azonostbl, egy szkzbl s az zenetbl ll.  A ngy karakteres
;  azonost a hnapot illetve a napot jelli. Pldul februr 23-t 0223-
;  mal kell jellni. Ha szeretnnk, hogy minden hnap 23-n figyelmeztetne
;  a program minket valamire, akkor 0023-at rjunk be. Ugyanez termszete-
;  sen fordtva is igaz,  ha egy meghatrozott hnap minden napjn szeret-
;  nnk ltni zenetnket, akkor megadhatjuk a 0200 formtumot. Hasznlha-
;  t ugyancsak a 0000 azonost, ekkor az zenet minden programindtskor
;  meg  fog jelenni.  Egyszerre tbb zenetet is  kirathatunk, sorrendjk
;  a naptar.dat llomnytl fgg.
;
;
; Pldk:
;  Ne felejtsk, hogy az azonostt az els oszlopban kell kezdeni!
;
; 0308 Minden vben mrcius 8-n megjelenik.
; 0000 Ez egy olyan zenet, amely egsz vben, minden nap meg fog jelenni.
; 0200 Ez a mondat februrban minden napjn megjelenik.
; 0031 Minden hnap 31. napjn, ha van ilyen az adott hnapnak.
; 0307 Holnap nnap! (rdemes elre figyelmeztetni magunkat. :)
;
0101	Fruzsina
0102	bel
0103	Genovva, Benjmin
0104	Titusz, Leona
0105	Simon
0106	Boldizsr
0107	Attila, Ramna
0108	Gyngyvr
0109	Marcell
0110	Melnia
0111	gota
0112	Ern
0113	Veronika
0114	Bdog
0115	Lrnt, Lornd
0116	Gusztv
0117	Antal, Antnia
0118	Piroska
0119	Sra, Mri
0120	Fbin, Sebestyn
0121	gnes
0122	Vince, Artr
0123	Zelma, Rajmund
0124	Timt
0125	Pl
0126	Vanda, Paula
0127	Angelika
0128	Kroly, Karola
0129	Adl
0130	Martina, Gerda
0131	Marcella
0201	Ignc
0202	Karolina, Aida
0203	Balzs
0204	Rhel, Csenge
0205	gota, Ingrid
0206	Dorottya, Dra
0207	Tdor, Rme
0208	Aranka
0209	Abigl, Alex
0210	Elvira
0211	Bertold, Marietta
0212	Lvia, Ldia
0213	Ella, Linda
0214	Blint, Valentin
0215	Kolos, Georgina
0216	Julianna, Lilla
0217	Dont
0218	Bernadett
0219	Zsuzsanna
0220	Aladr, lmos
0221	Eleonra
0222	Gerzson
0223	Alfrd
0224	Mtys
0225	Gza
0226	Edina
0227	kos, Btor
0228	Elemr
0229	Anonymus
0301	Albin
0302	Lujza
0303	Kornlia
0304	Kzmr
0305	Adorjn, Adrin
0306	Leonra, Inez
0307	Tams
0308	Zoltn
0309	Franciska, Fanni
0310	Ildik
0311	Szilrd
0312	Gergely
0313	Krisztin, Ajtony
0314	Matild
0315	Kristf
0316	Henrietta
0317	Gertrd, Patrik
0318	Sndor, Ede
0319	Jzsef, Bnk
0320	Klaudia
0321	Benedek
0322	Beta, Izolda
0323	Emke
0324	Gbor, Karina
0325	Irn, Irisz
0326	Emnuel
0327	Hajnalka
0328	Gedeon, Johanna
0329	Aguszta
0330	Zaln
0331	rpd
0401	Hug
0402	ron
0403	Buda, Richrd
0404	Izidor
0405	Vince
0406	Vilmos, Bborka
0407	Herman
0408	Dnes
0409	Erhard
0410	Zsolt
0411	Le, Szaniszl
0412	Gyula
0413	Ida
0414	Tibor
0415	Anasztzia, Tas
0416	Csongor
0417	Rudolf
0418	Andrea, Ilma
0419	Emma
0420	Tivadar
0421	Konrd
0422	Csilla, Nomi
0423	Bla
0424	Gyrgy
0425	Mrk
0426	Ervin
0427	Zita
0428	Valria
0429	Pter
0430	Katalin, Kitti
0501	Flp, Jakab
0502	Zsigmond
0503	Tmea, Irma
0504	Mnika, Flrin
0505	Gyrgyi
0506	Ivett, Frida
0507	Gizella
0508	Mihly
0509	Gergely
0510	rmin, Plma
0511	Ferenc
0512	Pongrc
0513	Szervc, Imola
0514	Bonifc
0515	Zsfia, Szonja
0516	Mzes, Botond
0517	Paszkl
0518	Erik, Alexandra
0519	Iv, Miln
0520	Bernt, Felcia
0521	Konstantin
0522	Jlia, Rita
0523	Dezs
0524	Eszter, Eliza
0525	Orbn
0526	Flp, Evelin
0527	Hella
0528	Emil, Csand
0529	Magdolna
0530	Janka, Zsanett
0531	Angla, Petronella
0601	Tnde
0602	Krmen, Anita
0603	Klotild
0604	Bulcs
0605	Fatime
0606	Norbert, Cintia
0607	Rbert
0608	Medrd
0609	Flix
0610	Margit, Grta
0611	Barnabs
0612	Vill
0613	Antal, Anett
0614	Vazul
0615	Joln, Vid
0616	Jusztin
0617	Laura, Alida
0618	Arnold, Levente
0619	Gyrfs
0620	Rafael
0621	Alajos, Leila
0622	Paulina
0623	Zoltn
0624	Ivn
0625	Vilmos
0626	Jnos, Pl
0627	Lszl
0628	Levente, Irn
0629	Pter, Pl
0630	Pl
0701	Tihamr, Annamria
0702	Ott
0703	Kornl, Soma
0704	Ulrik
0705	Emese, Sarolta
0706	Csaba
0707	Apollnia
0708	Ellk
0709	Lukrcia
0710	Amlia
0711	Nra, Lili
0712	Izabella, Dalma
0713	Jen
0714	rs, Stella
0715	Henrik, Roland
0716	Valter
0717	Endre, Elek
0718	Frigyes
0719	Emlia
0720	Ills
0721	Dniel, Daniella
0722	Magdolna
0723	Lenke
0724	Kinga, Kincs
0725	Kristf, Jakab
0726	Anna, Anik
0727	Olga, Lilina
0728	Szabolcs
0729	Mrta, Flra
0730	Judit, Xnia
0731	Oszkr
0801	Boglrka
0802	Lehel
0803	Hermina
0804	Domonkos, Dominika
0805	Krisztina
0806	Berta, Bettina
0807	Ibolya
0808	Lszl
0809	Emd
0810	Lrinc
0811	Zsuzsanna, Tiborc
0812	Klra
0813	Ipoly
0814	Marcell
0815	Mria
0816	brahm
0817	Jcint
0818	Ilona
0819	Huba
0820	Istvn
0821	Smuel, Hajna
0822	Menyhrt, Mirjam
0823	Bence
0824	Bertalan
0825	Lajos, Patrcia
0826	Izs
0827	Gspr
0828	goston
0829	Beatrix, Erna
0830	Rzsa
0831	Erika, Bella
0901	Egyed, Egon
0902	Rebeka, Dorina
0903	Hilda
0904	Rozlia
0905	Viktor, Lrinc
0906	Zakaris
0907	Regina
0908	Mria, Adrienn
0909	dm
0910	Nikolett, Hunor
0911	Teodra
0912	Mria
0913	Kornl
0914	Szerna, Roxna
0915	Enik, Melitta
0916	Edit
0917	Zsfia
0918	Dina
0919	Vilhelmina
0920	Friderika
0921	Mt, Mirella
0922	Mric
0923	Tekla
0924	Gellrt, Mercdesz
0925	Eufrozina, Kende
0926	Jusztina
0927	Adalbert
0928	Vencel
0929	Mihly
0930	Jeromos
1001	Malvin
1002	Petra
1003	Helga
1004	Ferenc
1005	Aurl
1006	Brn, Renta
1007	Amlia
1008	Koppny
1009	Dnes
1010	Gedeon
1011	Brigitta
1012	Miksa
1013	Klmn, Ede
1014	Heln
1015	Terz
1016	Gl
1017	Hedvig
1018	Lukcs
1019	Nndor
1020	Vendel
1021	Orsolya
1022	Eld
1023	Gyngyi
1024	Salamon
1025	Blanka, Bianka
1026	Dmtr
1027	Szabina
1028	Simon, Szimonetta
1029	Nrcisz
1030	Alfonz
1031	Farkas
1101	Marianna
1102	Achilles
1103	Gyz
1104	Kroly
1105	Imre
1106	Lnrd
1107	Rezs
1108	Zsombor
1109	Tivadar
1110	Rka
1111	Mrton
1112	Jns, Rent
1113	Szilvia
1114	Aliz
1115	Albert, Lipt
1116	dn
1117	Hortenzia, Gerg
1118	Jen
1119	Erzsbet
1120	Joln
1121	Olivr
1122	Ceclia
1123	Kelemen, Klementina
1124	Emma
1125	Katalin
1126	Virg
1127	Virgil
1128	Stefnia
1129	Taksony
1130	Andrs, Andor
1201	Elza
1202	Melinda, Vivien
1203	Ferenc
1204	Borbla, Barbara
1205	Vilma
1206	Mikls
1207	Ambrus
1208	Mria
1209	Natlia
1210	Judit
1211	rpd
1212	Gabriella
1213	Luca, Otlia
1214	Szilrda
1215	Valr
1216	Etelka, Aletta
1217	Lzr, Olimpia
1218	Auguszta
1219	Viola
1220	Teofil
1221	Tams
1222	Zn
1223	Viktria
1224	dm, va
1225	Eugnia
1226	Istvn
1227	Jnos
1228	Kamilla
1229	Tams, Tamara
1230	Dvid
1231	Szilveszter
