summaryrefslogtreecommitdiff
path: root/dot/local/bin/lpdf
diff options
context:
space:
mode:
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"