#! /bin/sh

LOKI=info.$$.txt
TXTSIZE=0
ZIPSIZE=0
FILE=$LOKI.gz
SUFF=null
touch $LOKI

checkPackage()
{
if [ -f /usr/bin/kdialog ] 
then SUFF=KDE
  elif [ -f /usr/bin/notify-send ]
  then
     SUFF=Gnome
 else
   gnomesu `package-manager --install libnotify`
fi
}

showMessageGnome()
{
notify-send -i yast-support-query "TIETOJA KONEESTA

Kerätään tarpeellisia tietoja koneesta. 
Tietojen kerääminen kestää jonkin aikaa."
}

showMessageKDE()
{
kdialog --passivepopup "<strong>TIETOJA KONEESTA</strong>

Kerätään tarpeellisia tietoja koneesta. 
Tietojen kerääminen kestää jonkin aikaa." --title "Tietoja koneesta" 5
}


notifyTxtGnome()
{
notify-send -i yast-support-query -t 20000 "TIETOJA KONEESTA

Kerätyt tiedot löytyvät tiedostosta 
 
$PWD/$LOKI ($TXTSIZE kt) 
 
lisää tämä tiedosto liitteenä viestiisi"
}

notifyTxtKDE()
{
kdialog --passivepopup "<b>TIETOJA KONEESTA</b>

Kerätyt tiedot löytyvät tiedostosta 
 
<b>$PWD/$LOKI ($TXTSIZE kt) </b>
 
lisää tämä tiedosto liitteenä viestiisi" --title "Tietoja koneesta" 15
}

notifyGzipGnome()
{

notify-send -i yast-support-query -t 20000 "TIETOJA KONEESTA

Kerätyt tiedot löytyvät tiedostosta 

<b>$PWD/$LOKI ($TXTSIZE kt)</b> 

Tiedoston koko on kuitenkin suurempi kuin liitteen sallittu enimmäiskoko, 
joten käytä pakattua tiedostoa

$PWD/$FILE ($ZIPSIZE kt)

viestisi liitteenä." 
}

notifyGzipKDE()
{

kdialog --passivepopup "<b>TIETOJA KONEESTA</b>

Kerätyt tiedot löytyvät tiedostosta 

<b>$PWD/$LOKI ($TXTSIZE kt) </b>

Tiedoston koko on kuitenkin suurempi kuin liitteen sallittu enimmäiskoko, 
joten käytä pakattua tiedostoa

<b>$PWD/$FILE ($ZIPSIZE kt)</b>

viestisi liitteenä." --title "Tietoja koneesta"  15
}

fileSizeExceedGnome()
{
notify-send -i yast-support-query -t 20000 "TIETOJA KONEESTA

Kerätyt tiedot löytyvät tiedostosta 

$PWD/$LOKI ($TXTSIZE kt) 

ja

$PWD/$FILE ($ZIPSIZE kt) 

Kummankin tiedoston koko ylittää kuitenkin liitteen sallitun enimmäiskoon, 
joten lähetä pakattu tiedosto sähköpostitse seuraavaan osoitteeseen
 
opensuse@gmail.com

ja lisää $PWD/$FILE liitteenä viestiisi." 
}

fileSizeExceedKDE()
{
kdialog --passivepopup "<strong>TIETOJA KONEESTA</strong>

Kerätyt tiedot löytyvät tiedostosta 

<strong>$PWD/$LOKI ($TXTSIZE kt) </strong>

ja

<strong>$PWD/$FILE ($ZIPSIZE kt) </strong>

Kummankin tiedoston koko ylittää kuitenkin liitteen sallitun enimmäiskoon, 
joten lähetä pakattu tiedosto sähköpostitse seuraavaan osoitteeseen
 
opensuse@gmail.com

ja lisää <strong>$PWD/$FILE</strong> liitteenä viestiisi." --title "Tietoja koneesta" 15
} 

query()
{
echo "=== SUSE-RELEASE ===" >> $LOKI
cat /etc/SuSE-release >> $LOKI
echo " " >> $LOKI
echo "=== PROCINFO ===" >> $LOKI
procinfo >> $LOKI 
echo " " >> $LOKI
echo "=== TYÖPÖYTÄYMPÄRISTO ===" >> $LOKI
echo $DESKTOP_SESSION >> $LOKI 
echo " " >> $LOKI
echo "=== ASENNUSLÄHTEET ===" >> $LOKI
zypper repos -d >> $LOKI
echo " " >> $LOKI
echo "=== HWINFO ===" >> $LOKI
/usr/sbin/hwinfo --short >> $LOKI
echo " " >> $LOKI
echo "=== GFXCARD ===" >> $LOKI
/usr/sbin/hwinfo --gfxcard >> $LOKI
echo " " >> $LOKI
echo "=== LSPCI ===" >> $LOKI
/sbin/lspci >> $LOKI
echo " " >> $LOKI
echo "=== LSUSB ===" >> $LOKI
lsusb >> $LOKI
echo " " >> $LOKI
echo "=== LSMOD ===" >> $LOKI
lsmod >> $LOKI
echo " " >> $LOKI

if [ ! -z $(zypper repos -d |grep -i packman |awk '{ print $3 }') ] 
then
echo "=== ASENNETUT PAKETIT PACKMAN ===" >> $LOKI
zypper se -i -t package -r $(zypper repos -d |grep -i packman |awk '{ print $3 }') >> $LOKI
echo " " >> $LOKI
else
echo "=== PACKMAN-ASENNUSLÄHDE EI OLE KÄYTÖSSÄ ==="
echo " " >> $LOKI
fi

if [ ! -z $(zypper repos -d |grep -i vlc |awk '{ print $3 }') ] 
then
echo "=== ASENNETUT PAKETIT VLC ===" >> $LOKI
zypper se -i -t package -r $(zypper repos -d |grep -i vlc |awk '{ print $3 }') >> $LOKI
echo " " >> $LOKI
else
echo "=== VIDEOLAN-ASENNUSLÄHDE EI OLE KÄYTÖSSÄ ==="
echo " " >> $LOKI
fi 

echo "=== ASENNETTAVISSA OLEVAT \"PÄIVITYKSET\" ===" >> $LOKI
zypper lu >> $LOKI
echo " " >> $LOKI
echo "=== TARKISTETAAN OVATKO PAKETTIEN RIIPPUVUUDET KUNNOSSA ===" >> $LOKI
zypper verify >> $LOKI
echo " " >> $LOKI
echo "=== XORG.CONF ===" >> $LOKI
cat /etc/X11/xorg.conf >> $LOKI
echo " " >> $LOKI
echo "=== DMESG ===" >> $LOKI
dmesg >> $LOKI
echo " " >> $LOKI
echo "=== XORG.0.LOG ===" >> $LOKI
cat /var/log/Xorg.0.log >> $LOKI
echo " " >> $LOKI
echo ""
}

checkSize()
{
if [ "$(stat $LOKI |grep Size |awk '{print $2}')" -le "200000" ]
  then
    let "TXTSIZE=$(stat $LOKI |grep Size |awk '{print $2}') / 1000"
    notifyTxt$SUFF
  else
    cat $LOKI|gzip - > $FILE
    let "TXTSIZE=$(stat $LOKI |grep Size |awk '{print $2}') / 1000"
    let "ZIPSIZE=$(stat $FILE |grep Size |awk '{print $2}') / 1000"
    if  [ "$(stat $FILE |grep Size |awk '{print $2}')" -le "200000" ]
    then
    notifyGzip$SUFF
    else
    fileSizeExceed$SUFF
    fi
fi

}
checkPackage
showMessage$SUFF
query
checkSize
