#!/bin/sh
#
# chk_prtr
#
# By: A.Corbera
#
# Purpose: Get Printer's Port and Software types from files on this station:
#  1. /etc/printers (Port Types)
#  2. /usr/fox/sp/IIF.prm (Software Types) from System Cfg
#  3. /usr/fox/sp/files/PMlbug.CS (Comm files)
#  for debugging purposes.
#
cd /opt/ac
echo "Getting data from /etc/printers ..."
echo "\nReport generated on `uname -n` at: `date`" > Printers
echo "\n1) ======== (ALL) PRINTERS FROM  /etc/printers ============" >> Printers
echo " LP:  SoftwTyp:   Printer:" >>Printers
sort /etc/printers >>Printers

echo "Getting data from IIF.prm and IIF.dat ..."
echo "\n\n2) ==== (ALL) PRINTER-HOST INFO FROM:  /etc/printers  AND IIF.prm/IIF.
dat =====" >>Printers
#echo "Combined data from /etc/printers and IIF.prm/.dat :"
#echo "Lpxx  Host/Port  /etc/printers   PortType" >>Printers
echo "Lpxx  Host/Port     /etc/printers      IIF.prm/IIF.dat:" >>Printers
PRM="/usr/fox/sp/IIF.prm"
DAT="/usr/fox/sp/IIF.dat"
LPS=`sort /etc/printers | awk '{print $1}'`
for x in $LPS
do
 PRTR_SOFT=`grep $x /etc/printers | awk '{print $2}'`
 sta=`grep $x $PRM | egrep 'P1LN|P2LN|P3LN|P4LN' | awk '{print $2}'`
 port=`grep $x $PRM | egrep 'P1LN|P2LN|P3LN|P4LN' | awk '{print substr($4,1,2)}'
`
 IIF_PORT=`awk '{print $2,$4,$6}' $PRM| grep $sta | grep $port | grep DEV | awk
'{print $3}'`
 DAT_PORT=`awk '{print $2,$4,$6}' $DAT| grep $sta | grep $port | grep DEV | awk
'{print $3}'`
 echo "$x: $sta/$port        $PRTR_SOFT                  $IIF_PORT-$DAT_PORT" >>
 Printers
done
#

echo "Getting data from files for LOCALLY hosted COMM processors ..."
COMMS=`awk ' $2 == "101" {print $1}' /usr/fox/sp/hldb`
#COMML=`awk ' $2 == "101" {print $1}' /usr/fox/sp/hldb`
echo "\n\n3) ======== (LOCALLY HOSTED) COMM PROCESSOR  PRINTERS ==============="
 >>Printers
echo "Comm processors in the system, from /usr/fox/sp/hldb:  \c" >>Printers
echo $COMMS >> Printers
echo "Comm Processors hosted by this station ($HOST)" >> Printers
for x in $COMMS
do
   echo $x
   grep $x /usr/fox/sp/sldb | awk ' $2 == "'$HOST'" {print $1}' >> Printers
done

echo "Port TYPES for Comm Processors hosted by this station from /usr/fox/sp/fil
es/PMxxxxxx.CS:" >>Printers
ls /usr/fox/sp/files/PM*.CS |grep .CS > /dev/null
if [ $? -eq 0 ]
then
   for x in $COMMS
   do
     if [ -f /usr/fox/sp/files/PM$x.CS ]
     then
        /usr/foxbin/bpatch -d /usr/fox/sp/files/PM$x.CS > z 2>/dev/null
        P1=`grep 00: z | awk '{print $4}'`
        P2=`grep 01: z | awk '{print $8}'`
        P3=`grep 02: z | awk '{print $12}'`
        P4=`grep 03: z | awk '{print $16}'`
        echo "$x: P1=$P1\tP2=$P2\tP3=$P3\tP4=$P4" >>Printers
     fi
   done
else
   echo "This station does NOT host any COMM processors!" >> Printers
fi

echo "Getting data for LOCAL DIRECT connected printers ..."
echo "\n\n4) ========== (LOCAL) DIRECT CONNECTED  PRINTERS (cs_cfg.pars) =======
====" >>Printers
if [ -f /usr/fox/sp/files/cs_cfg.pars ]
then
  echo " LP:    Device:         Port Type:" >>Printers
  DIR="/usr/fox/sp/files/cs_cfg.pars"
  egrep 'NAME|TYPE' $DIR | sed -e 's/=/ = /'|sed -e 's/#/ # /'|awk '
    $1 == "LPNAME" {printf "%-0s\t",$3}
    $1 == "PTNAME" {printf "%-0s\t",$3}
    $1 == "LPTYPE" {printf "%-0s\n",$3}' >>Printers
fi

echo "Getting data from files for PCL3 printers ..."
echo "\n\n5) ========== FILES FOR PCL3 (HP870/890/895) PRINTERS ===========" >>P
rinters
ls -l /etc/printscreen.printers >>Printers
ls -l /etc/printscreen.options >>Printers
echo "\n /etc/printscreen.options :" >>Printers
echo "All your direct-connect PCL3 (HP870/890/895) printers should be here!" >>P
rinters
if [ -f /etc/printscreen.options ]
then
   cat /etc/printscreen.options | grep -v LPxx >>Printers
else
   echo "File does NOT exist!" >>Printers
fi
echo "\n\n6) ========== /usr/local/local_printer ==========" >>Printers
echo "This file should exist ONLY if you have a DIRECT Serial printer." >> Print
ers
if [ -f /usr/local/local_printer ]
then
   ls -l /usr/local/local_printer >>Printers
else
   echo "File 'local_printer' does NOT exist!" >>Printers
fi

echo "\n\n7) ========== PRINTER INTERFACES ==========" >>Printers
ls -l /etc/lp/interfaces >>Printers

echo "\n\n8) ========== SYSTEM PRINTERS (Remote & Local) ==========" >>Printers
echo "Printer    Type (bsd/s5)" >>Printers
lpsystem -l | awk ' /System/ {printf "%-10s ", $2}
                    /Type/   {printf "%5s\n", $2}' | grep LP >>Printers

echo "\n\n9) ========== SYSTEM PRINTERS (Remote) ==========" >>Printers
echo "System printers, except local one"
lpstat -s | grep system | egrep -v default | sort +2 >>Printers

echo "\n\n10) ========== OTHER PRINTSCREEN RELATED FILES ==========" >>Printers

echo "Note: Lexmark printer requires 'xwd2ps' to be: 57736, Jul 8, 1999\n" >>Pri
nters
ls -l /usr/fox/wp/bin/xwd2ps  >>Printers

ls -l /usr/fox/wp/bin/jettool >>Printers
ls -l /usr/fox/wp/bin/r2grab >>Printers
ls -l /usr/fox/wp/bin/foxwd >>Printers
ls -l /usr/fox/wp/bin/foxpr >>Printers
ls -l /usr/fox/exten/standard >>Printers
ls -l /usr/fox/exten/pjet_graphics >>Printers

echo "\n================ THE END =======================" >>Printers
echo "This information was saved in current directory as file: Printers" >> Prin
ters

more Printers
