#!/bin/bash -e pd=$HOME/.schmierpapier db=$pd/db locf=$pd/loc baseurlf=$pd/baseurl # check env fail() { echo "$1" >&2; exit -1; } [ -e $baseurlf ] || fail "base URL undefined - $baseurlf not found" [ -e $locf ] || fail "location undefined - $locf not found" exec >$pd/log.std 2>$pd/log.err # dynamic content id=$(dd if=/dev/urandom bs=1 count=64 2>/dev/null | sha512sum | egrep -o '^.{32}') hdate=$(date '+%d/%m/%Y') cdate=$(date '+%s') loc=$(cat $locf) baseurl=$(cat $baseurlf) url="$baseurl/$id?l=$loc&t=$cdate" day=$(date '+%Y/%m/%Y/%d') mkdir -p $db/$(dirname $day) echo $url >> $db/$day no=$(wc -l < $db/$day) # scratch dir dir=$(mktemp -d) # template echo '\documentclass{article} \usepackage{color} \usepackage{pst-barcode} \usepackage{auto-pst-pdf} \usepackage[top=0cm, right=1cm]{geometry} \begin{document} \pagestyle{empty} \raggedleft \begin{pspicture}(2in,2in) \psbarcode[linecolor=gray]{'"$url"'}{eclevel=M width=0.68 height=0.68}{qrcode} \end{pspicture} \\ '"$hdate"' \\ \vspace{-3mm} \Huge '"$no'"'\hspace{4mm} \end{document}' > $dir/page.tex # render & print ( cd $dir; pdflatex --shell-escape page.tex pdftops page.pdf lp -o sides=one-sided -d lp45b page.ps # okular page.pdf ) rm -r $dir