Files
mastering-unix-ss/chapter25/function_CUPS_printing
Fabio Scotto di Santolo 4cc88d2f6e initial commit
2020-07-28 19:28:25 +02:00

47 lines
1.1 KiB
Plaintext
Executable File

function CUPS_printing
{
LOOP=0 # Loop Counter - To grab three lines at a time
lpc status all | egrep .:|printing|queuing. | while read LINE
do
# Load three unique lines at a time
case $LINE in
*:) Q=$(echo $LINE | cut -d .:. -f1)
;;
printing*)
PSTATUS=$(echo $LINE | awk .{print $3}.)
;;
queuing*)
QSTATUS=$(echo $LINE | awk .{print $3}.)
;;
esac
# Increment the LOOP counter
(( LOOP = LOOP + 1 ))
if ((LOOP == 3)) # Do we have all three lines of data?
then
# Check printing status
case $PSTATUS in
disabled) cupsenable $Q >/dev/null
(($? == 0)) && echo -e "\n$Q printing re-started\n"
sleep 1
;;
enabled|*) : # No-Op - Do Nothing
;;
esac
# Check queuing status
case $QSTATUS in
disabled) accept $Q # >/dev/null
(($? == 0)) && echo -e "\n$Q queueing re-enabled\n"
;;
enabled|*) : # No-Op - Do Nothing
;;
esac
LOOP=0 # Reset the loop counter to zero
fi
done
}