pcwhwid

Posted 01/27/2009 - 16:28 by admin

#!/bin/bash
#
#
# Variablen
BASEURL=http:\\/\\/pcwelt-wiki.de\\/wiki\\/
 
function getutil() {
  unset X
  X_PATH="/bin /usr/bin /sbin /usr/sbin"
  for I in $X_PATH
  do
    if [ -x $I/$1 ];
    then
      X=$I/$1
    fi
  done
  if [ -z $X ];
  then
    echo "Fatal: $1 nicht gefunden, Abbruch."
    exit 1
  fi
}
 
function writehtml() {
  echo '<a href="'$1'">'$2'</a><br>' >>$OUTPUT
}
 
getutil "lsusb"; LSUSB=$X
getutil "lspci"; LSPCI=$X
 
# PCI
PCIDEVS=($($LSPCI |cut -d' ' -f2- |sed -e 's/ /\&nbsp;/g'))
if [ "$($LSPCI --version)" = "lspci version 2.1.11" ] && [ "$(cat /etc/debian_version 2>/dev/null)" = "3.1" ] ;
then
  PCIURLS=($($LSPCI -mn \
  |awk 'OFS=":" {print $3,$4,$7,$8}'\
  |sed -e s/^/"$BASEURL"/g))
else
PCIURLS=($($LSPCI -mn |cut -d' ' -f2- |sed \
  -e 's/Class//g'\
  -e 's/-[r\|p][0-f]\{2\}//g'\
  -e 's/""/"0000"/g'\
  -e 's/ //g'\
  -e 's/""/:/g'\
  -e 's/"//g'\
  -e 's/^.\{5\}//g'\
  -e s/^/"$BASEURL"/g))
fi
 
#USB
USBDEVS=($($LSUSB \
  |grep -v 0000:0000 \
  |cut -d' ' -f7-\
  |sed -e 's/ /\&nbsp;/g'))
USBURLS=($($LSUSB \
  |grep -v 0000:0000 \
  |cut -d' ' -f6\
  |sed -e s/^/"$BASEURL"/g))
 
OUTPUT='./pcwhwid.html'
if [ -f $OUTPUT ]; then rm $OUTPUT; fi
 
echo '<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 3.2//EN">'>> $OUTPUT
echo '<html>' >> $OUTPUT
echo '<head>' >> $OUTPUT
echo '<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">' >> $OUTPUT
echo '<title>Ger&auml;tekonfiguration f&uuml;r '$(hostname)'</title>' >>$OUTPUT
echo '</head>' >> $OUTPUT
echo '<body>' >>$OUTPUT
echo '<h1>Ger&auml;tekonfiguration f&uuml;r '$(hostname)'</h1>' >>$OUTPUT
echo '<style type="text/css">' >>$OUTPUT
echo 'body { font-family: sans-serif;}' >>$OUTPUT
echo ':link {text-decoration: none}' >>$OUTPUT
echo ':visited {text-decoration: none}' >>$OUTPUT
echo ':hover {text-decoration: underline overline; color: red;}' >>$OUTPUT
echo '</style>' >> $OUTPUT
echo 'Die Links f&uuml;hren jeweils zur Hardware-Datenbank im <a href="PC-WELT-Praxis-Wikihttp://pcwelt-wiki.de/wiki/">PC-WELT-Praxis-Wiki</a>.' >>$OUTPUT
 
if [ ${#PCIURLS} -eq 0 ];
then
  echo '<h2><Keine PCI-Ger&auml;te.</h2>' >>$OUTPUT
else
  echo '<h2>PCI-Ger&auml;te:</h2>' >>$OUTPUT
  I=0
  while [ $I -lt ${#PCIURLS[@]} ]; do
    writehtml ${PCIURLS[$I]} ${PCIDEVS[$I]}
    I=$(expr $I + 1)
  done
fi
 
if [ ${#USBURLS} -eq 0 ];
then
  echo '<h2>Keine USB-Ger&auml;te.</h2>' >>$OUTPUT
else
  echo '<h2>USB-Ger&auml;te:</h2>' >>$OUTPUT
  I=0
  while [ $I -lt ${#USBURLS[@]} ]; do
    writehtml ${USBURLS[$I]} ${USBDEVS[$I]}
    I=$(expr $I + 1)
  done
fi
 
echo '</body>' >>$OUTPUT
echo '</html>' >>$OUTPUT
echo 'Die Datei '$OUTPUT' wurde erstellt.'
 
# vim:set shiftwidth=2 smarttab smartindent: