#!/bin/bash

####################################################################################################
#                                                                                                  #
#                  **     **    **                                                                 #
#                   **   **     **                                                                 #
#                    ** **      **                  **                               *             #
#                     ***       **                 ****                   *          ***           #
#                    ** **      **                **  **    ****  *   *       ***     *            #
#                   **   **     *******            **      *      * *  *  *   *   *   *            #
#                  **     **    ********         ** **     *      *       *   *    *  *            #
#                                                 *****    *      *       *   * ***   *   *        #
#                                                   **      ****  *       *   *         *          #
#                                                                            *                     #
#                  getSysinfo, written by xlazarus is a simple script to read                      #
#                  out System- and Environment Stats and put them all togehter                     #
#                  into one single file.                                                           #
#                  Additinal feature ist the -g parameter wich can be used to                      #
#                  open the infofile in a grafical Editor listet in help                           #
#                                                                                                  #
#                  All af the used commands can be used standalone in shell, but                   #
#                  this script put them together to make overview easier.                          #
#                                                                                                  #
####################################################################################################


VERSION=1.1.0
AUTOR=xlazarus
YEAR=2009

function myhelp {
   echo ''
   echo '***********  H I L F E **************'
   echo 'Script-Version: '$VERSION
   echo 'getSysinfo hilft die wichtigsten Systemeigenschaften auszulesen.'
   echo 'Die Ergebnisse werden gesammelt und in das File xl_sysinfo.txt gepiped'
   echo 'Anwendung:'
   echo '$ getSysinfo [-h,-g [editor]]'
   echo '   -h : ruft diese Hilfe auf'
   echo '   -g : wenn sie eine graphische Oberfläsche verwenden,'
   echo 'wird das file gleich im Texteditor geöffnet'
   echo '- weiters kann der gewünschte Editor angegeben werden' 
   echo 'Editoren: gvim, kate, kedit, gedit=default, xedit, kwrite'
   echo ''
   echo '       script by '$AUTOR' '$YEAR
   echo ''
}

function openEditor {
      if [ $1 = "gvim" ]; then
	gvim xl_sysinfo.txt &
	exit
      elif [ $1 = "kate" ]; then
    	kate xl_sysinfo.txt &
	exit
      elif [ $1 = "kwrite" ]; then
    	kwrite xl_sysinfo.txt &
	exit
      elif [ $1 = "xedit" ]; then
    	xedit xl_sysinfo.txt &
	exit
      elif [ $1 = "kedit" ]; then
    	kedit xl_sysinfo.txt &
	exit
      else
	echo 'Editor '$1' does not exist!'
	exit
      fi
}

function __fetchSystemInfos {
   date >> xl_sysinfo.txt
   echo 'SYSTEM - KERNEL : __________________________________________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     uname -a >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo 'angemeldete USER : __________________________________________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     who >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo 'HARDWARE - KOMPONENTEN : __________________________________________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     lspci >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo '***********************************************************************************' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo 'NETZWERK _ INFOS - aktive und inaktive Netzwerkgeräte : ___________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     ifconfig -a >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo '***********************************************************************************' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo 'USB - DEVICES : ___________________________________________________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     lsusb >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo 'RAM und SWAP - BELEGUNGEN : ________________________________________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     free >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo 'FESTPLATTEN - BELEGUNGEN : ________________________________________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     df -h >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   echo 'LAUFENDE Prozesse : _______________________________________________________________' >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     ps aux >> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
     echo ''>> xl_sysinfo.txt
   if [ $1 = '-g' ]; then
      if [ -z "$2" ]; then
         gedit xl_sysinfo.txt & 
      else
         openEditor $2
      fi
   fi
   exit
}



### Abarbeitung ###

#remove old file
if [ -f xl_sysinfo.txt ]
then
   rm xl_sysinfo.txt
fi


#Parameter
if [ -n "$1" ]; then
   if [ $1 == "-h" ]; then
     myhelp
     exit
   elif [ $1 == "-g" ]; then
     __fetchSystemInfos $1 $2
   else
      echo 'parameter unbekannt, verwenden sie -h für die Hilfe'
   fi
else
 __fetchSystemInfos
fi


