1#!/bin/sh
2#
3# uuq - a script to examine and display the Taylor spool directory contents.
4#       note - uses the uuname script or similar functionality.
5# Zacharias Beckman
6
7SPOOLDIR="/usr/spool/uucp"
8SYSTEMS=`uuname`
9TMPFILE="/tmp/uuq.tmp"
10FORSYSTEM=""
11DELETE=""
12LONG=0
13SINGLE=0
14
15while [ "$1" != "" ]
16do
17  case $1 in
18    -l) LONG=1
19        shift
20        ;;
21    -s) shift
22        SYSTEMS=$argv[1]
23        SINGLE=1
24        shift
25        ;;
26    -d) shift
27        DELETE=$argv[1]
28        shift
29        ;;
30    -h) echo "uuq: usage uuq [options]"
31        echo "     -l    long listing (may take a while)"
32        echo "     -s n  run uuq only for system n"
33        echo "     -d n  delete item n from the queue (required -s)"
34        exit 1
35            ;;
36        *)  echo "uuq: invalid option"
37            exit 1
38            ;;
39  esac
40done
41
42if [ "${DELETE}" != "" ] && [ ${SINGLE} != 1 ] ; then
43  echo "uuq: you must specify a system to delete the job from:"
44  echo "     uuq -s wizard -d D.0004"
45  exit 1
46fi
47
48cd ${SPOOLDIR}
49
50# if we are deleting a job, then do that first and exit without showing
51# any other queue information
52
53if [ "${DELETE}" != "" ] ; then
54  if [ -d ${SYSTEMS}/D. ] ; then
55    cd ${SYSTEMS}/C.
56    PACKET=${DELETE}
57    if [ -f ${PACKET} ] ; then
58      EXFILE=../D.X/`awk '{if (NR == 2) print $2}' ${PACKET}`
59      DFILE=../D./`awk '{if (NR == 1) print $2}' ${PACKET}`
60      echo "deleting job ${PACKET}"
61      rm ${PACKET}
62      rm ${EXFILE}
63      rm ${DFILE}
64    else
65      echo "uuq: job ${PACKET} not found"
66      exit 1
67    fi
68  else
69    echo "uuq: system ${SYSTEMS} not found"
70  fi
71
72  exit 1
73fi
74
75# use the 'uuname' script to obtain a list of systems for the 'sys' file,
76# then step through each directory looking for appropriate information.
77
78if [ ${LONG} -gt 0 ] ; then
79  echo "system"
80  echo -n "job#    act size       command"
81fi
82
83for DESTSYSTEM in ${SYSTEMS} ; do
84  # if there is an existing directory for the named system, cd into it and
85  # "do the right thing."
86
87  if [ -d ${DESTSYSTEM} ] ; then
88    cd ${DESTSYSTEM}/C.
89
90    PACKET=`ls`
91
92    if [ "${PACKET}" != "" ] ; then
93      # if a long listing has been required, extra information is printed
94
95      echo ""
96      echo "${DESTSYSTEM}:"
97
98      # now each packet must be examined and appropriate information is
99      # printed for this system
100
101      if [ ${LONG} -gt 0 ] ; then
102        for PACKET in * ; do
103          EXFILE=../D.X/`awk '{if (NR == 2) print $2}' ${PACKET}`
104          DFILE=../D./`awk '{if (NR == 1) print $2}' ${PACKET}`
105          echo -n "${PACKET} " > ${TMPFILE}
106          gawk '{if (NR == 2) printf(" %s  ", $1);}' ${PACKET} >> ${TMPFILE}
107          ls -l ${DFILE}|awk '{printf("%-10d ", $4)}' >> ${TMPFILE}
108          if [ -f ${EXFILE} ] ; then
109            gawk '/U / {printf("(%s)", $2);}\
110                  /C / {print substr($0,2,length($0));}' ${EXFILE} >> ${TMPFILE}
111          else
112            echo "---" >> ${TMPFILE}
113          fi
114
115          cat ${TMPFILE}
116        done
117        cat ${SPOOLDIR}/.Status/${DESTSYSTEM}
118      else
119        ls
120      fi
121    fi
122  fi
123
124  cd ${SPOOLDIR}
125done
126