#!/bin/bash


                   #Naplnenie premennych

nemas_vnstat="Pravdepodobne nemáš nainštalovaný vnstat\n možeš ho nainštalovať príkazom\n\n sudo apt-get install vnstat\n\n Alebo možeš použiť svoj obľúbený nástroj na inštaláciu balíčkov."

nemas_font="Nemáš nainštalovaný font DejaVu Sans Mono čo môže spôsobyť že zobrazenie výsledkov vnstat nebude správne formátované.\nToto nieje generálna chyba ale môže pokaziť zážitok z použivania tohto skriptu. :D"

nemas_kartu="V tvojom zariadení som nenašiel žiadnu sieťovú kartu."

text_informacie="Tento jednoduchý skript slúži iba na to aby načítal dáta generované konzolovým programom vnstat a zobrazil ich v okne za pomoci programu zenity.\nRovnako sa snaží automaticky detekovať sieťové karty v zariadení kde ho spúšťaš.\n\n"

cesta_k_databaze="$(cat /etc/vnstat.conf | grep -i "DatabaseDir" | sed 's/.*\"\(.*\)\".*/\1/')/"

                   #Tato cast sa snazi zistit ci bezi vnstat

cislo=$(ps -A | grep -ic vnstatd)
if [ "$cislo" -lt 1 ]; then
   zenity --info --text="$nemas_vnstat" && exit
fi

                   #Tato cast zistuje ci je v systeme nainstalovany font DejaVu Sans Mono

cislo=$(fc-list | grep -ioc "DejaVu Sans Mono")
if [ "$cislo" -lt 1 ]; then
   zenity --info --text="$nemas_font"
fi

                   #Tato cast sa snazi najst sietove zariadenia

     #najde nazvy sietovych zariadeni a ulozi ich do premennej

karta_zoznam=$(vnstat --iflist | sed 's/.*: \(.*\) (.*/\1/')

     #kontroluje ci je aspon jedna sietova karta
if [ "$karta_zoznam" == "" ]; then
   zenity --info --text="$nemas_kartu"; exit 0
fi

     #vyraduje sietove zariadenia ktore nemaju vytvorenu databazu v vnstat
for meno_karty in $karta_zoznam ; do
   if [ "$meno_karty" != "" ]; then
      if [ "`find "$cesta_k_databaze" -name "$meno_karty"`" == ""$cesta_k_databaze""$meno_karty"" ]; then
         meno_karty1="$meno_karty"+"$meno_karty1"
         else
         karta_bez_databazy="$meno_karty"---"$karta_bez_databazy"
      fi
   fi
      zoznam_aktivnych_kariet=$(echo "$meno_karty1" | sed 's/+$//')
done

                   #Tato cast zobrazi okno s ponukou a vyber zapise do premennej

vyber=$(zenity  --list  --text "Zvoľ formát zobrazenia." --radiolist --column "Výber" --column "Ponuka" FALSE "Denný" FALSE "Týždenný" TRUE "Mesačný" FALSE "Koniec" FALSE "Informácie" --height=250 --width=70)

                   #Tato cast zobrazuje vysledky podla predchadzajucej volby

[ "$vyber" == Denný ] && vnstat -d -i "$zoznam_aktivnych_kariet" | zenity --text-info --height=500 --width=700 --font='DejaVu Sans Mono'
[ "$vyber" == Týždenný ] && vnstat -w -i "$zoznam_aktivnych_kariet" | zenity --text-info --height=500 --width=700 --font='DejaVu Sans Mono'
[ "$vyber" == Mesačný ] && vnstat -m -i "$zoznam_aktivnych_kariet" | zenity --text-info --height=500 --width=700 --font='DejaVu Sans Mono'
[ "$vyber" == Koniec ] &&  exit
[ "$vyber" == Informácie ] &&  zenity --info --text="$text_informacie\n\nSieťové zariadenia detekovane systemom:\n Sieťové zariadenie 1. `echo "$zoznam_aktivnych_kariet" | sed 's/+/\n Sieťové zariadenie 2. /'`\n Karta/y bez databázy vo vnstat  - "$karta_bez_databazy"\n\nPodrobnosti:\nCesta k databáze vnstat - "$cesta_k_databaze"\n\nifconfig\n`ifconfig`"

exit 0

