From 0f9bc9b789055023fbc91d6087f7a1d6901ecd1d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Asbj=C3=B8rn=20Sloth=20T=C3=B8nnesen?= Date: Wed, 15 Nov 2017 20:19:23 +0000 Subject: 2016: improve printloop (eg. handle offline printer) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Asbjørn Sloth Tønnesen --- printloop.sh | 7 +++---- trigger.sh | 13 ++++++++++++- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/printloop.sh b/printloop.sh index 64c1e24..26a10f4 100755 --- a/printloop.sh +++ b/printloop.sh @@ -4,12 +4,11 @@ printer="/dev/labelprinter" queuedir=queue print_queue(){ - for job in $(ls -1 "$queuedir/new"); do - ./trigger.sh "$printer" "$queuedir" - done + ./trigger.sh "$printer" "$queuedir" } print_queue -while inotifywait --quiet --timeout 30 "$queuedir/new"; do +while true; do + inotifywait --quiet --timeout 30 "$queuedir/new" print_queue done diff --git a/trigger.sh b/trigger.sh index 9740048..4d6ad2c 100755 --- a/trigger.sh +++ b/trigger.sh @@ -6,7 +6,18 @@ printed_dir=$queue_dir/printed/ mkdir -p $printed_dir -for file in $(ls $queue_dir/new/* 2>/dev/null); do +printqueue(){ + ls $queue_dir/new/* 2>/dev/null +} + +queuedepth=$(printqueue | wc -l) + +if [ ! -c "$printer" ] ; then + printf "labelprinter is offline, there are %d jobs in queue\n" $queuedepth >&2 + exit 1 +fi + +for file in $(printqueue); do echo printing $file ./ql570/ql570 $printer $file status=$? -- cgit v1.2.1