From eff7ebebb0aa24880afd92fd84d0d97fbe9ebf48 Mon Sep 17 00:00:00 2001 From: Gordon GECOS Date: Sun, 15 Oct 2023 07:57:35 -0400 Subject: lpdf --- dot/local/bin/lpdf | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100755 dot/local/bin/lpdf (limited to 'dot/local/bin/lpdf') diff --git a/dot/local/bin/lpdf b/dot/local/bin/lpdf new file mode 100755 index 0000000..911be80 --- /dev/null +++ b/dot/local/bin/lpdf @@ -0,0 +1,18 @@ +#!/bin/bash + +# lpdf -- print with lp to a PDF file; output the filename to stdout + +lp "$@" -d PDF | +{ + read _ _ _ pdf _ + case "$pdf" in + PDF-*) glob=$(printf "~/PDF/*-job_%s.pdf\n" "${pdf#PDF-}") ;; + *) exit 1 ;; + esac + sleep=0.1 + while ! (eval "shopt -s failglob; echo $glob") 2>/dev/null + do + sleep $sleep + done +} + -- cgit v1.2.3 From 2d543705e4c50b45ad109d1b5c272d0afb582b41 Mon Sep 17 00:00:00 2001 From: Gordon GECOS Date: Wed, 18 Oct 2023 11:14:24 -0400 Subject: lpdf --- dot/local/bin/lpdf | 36 +++++++++++++++++++++++++++++++----- 1 file changed, 31 insertions(+), 5 deletions(-) (limited to 'dot/local/bin/lpdf') diff --git a/dot/local/bin/lpdf b/dot/local/bin/lpdf index 911be80..41f52c4 100755 --- a/dot/local/bin/lpdf +++ b/dot/local/bin/lpdf @@ -1,18 +1,44 @@ #!/bin/bash - # lpdf -- print with lp to a PDF file; output the filename to stdout -lp "$@" -d PDF | +move_pdf() +{ + local o f="$1" + o=$f + o=${o##*/} + o=${o%%__*} + o=${o%.txt}.pdf + mv -i -T -- "$f" "$o" +} + +run_lp() +{ + set -x + lp "$@" -d PDF +} + +extract_lp_pdf_filename() { read _ _ _ pdf _ case "$pdf" in PDF-*) glob=$(printf "~/PDF/*-job_%s.pdf\n" "${pdf#PDF-}") ;; *) exit 1 ;; esac - sleep=0.1 - while ! (eval "shopt -s failglob; echo $glob") 2>/dev/null + + sleep=1 + while true do - sleep $sleep + if f=$(shopt -s failglob; 2>/dev/null eval "echo $glob") + then + printf "%s\n" "$f" + break + else + sleep $sleep + sleep=$((sleep + 1)) + fi done } +set -e +read pdf < <(run_lp "$@" | extract_lp_pdf_filename) +move_pdf "$pdf" -- cgit v1.2.3