summaryrefslogtreecommitdiff
path: root/dot/local/bin/lpdf
diff options
context:
space:
mode:
authorAndrew Cady <d@jerkface.net>2024-01-19 12:01:49 -0500
committerAndrew Cady <d@jerkface.net>2024-01-19 12:01:49 -0500
commita74be3f9e73d9dd10eee890e673d00bfb44e5cfb (patch)
treed6ac57f28cdd7bf0283234e4730275c0b6afb565 /dot/local/bin/lpdf
parent66a483f0101ec54bd8db0f7d20ed83fe2f615cf4 (diff)
parentf58705ed7c600a1d394c6949bb7e21cfd29e6260 (diff)
Merge commit 'f587'HEADmaster
Diffstat (limited to 'dot/local/bin/lpdf')
-rwxr-xr-xdot/local/bin/lpdf44
1 files changed, 44 insertions, 0 deletions
diff --git a/dot/local/bin/lpdf b/dot/local/bin/lpdf
new file mode 100755
index 0000000..41f52c4
--- /dev/null
+++ b/dot/local/bin/lpdf
@@ -0,0 +1,44 @@
1#!/bin/bash
2# lpdf -- print with lp to a PDF file; output the filename to stdout
3
4move_pdf()
5{
6 local o f="$1"
7 o=$f
8 o=${o##*/}
9 o=${o%%__*}
10 o=${o%.txt}.pdf
11 mv -i -T -- "$f" "$o"
12}
13
14run_lp()
15{
16 set -x
17 lp "$@" -d PDF
18}
19
20extract_lp_pdf_filename()
21{
22 read _ _ _ pdf _
23 case "$pdf" in
24 PDF-*) glob=$(printf "~/PDF/*-job_%s.pdf\n" "${pdf#PDF-}") ;;
25 *) exit 1 ;;
26 esac
27
28 sleep=1
29 while true
30 do
31 if f=$(shopt -s failglob; 2>/dev/null eval "echo $glob")
32 then
33 printf "%s\n" "$f"
34 break
35 else
36 sleep $sleep
37 sleep=$((sleep + 1))
38 fi
39 done
40}
41
42set -e
43read pdf < <(run_lp "$@" | extract_lp_pdf_filename)
44move_pdf "$pdf"