From e051fecf9c19d446d6588bd21070fd1a799b97a3 Mon Sep 17 00:00:00 2001 From: tv Date: Wed, 17 Apr 2019 21:49:43 +0200 Subject: qrscan: init --- krebs/5pkgs/simple/qrscan.nix | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 krebs/5pkgs/simple/qrscan.nix (limited to 'krebs/5pkgs/simple') diff --git a/krebs/5pkgs/simple/qrscan.nix b/krebs/5pkgs/simple/qrscan.nix new file mode 100644 index 000000000..7d99dcee7 --- /dev/null +++ b/krebs/5pkgs/simple/qrscan.nix @@ -0,0 +1,27 @@ +{ coreutils, gnused, writeDashBin, zbar }: + +writeDashBin "qrscan" '' + set -efu + + tmpdir=$(${coreutils}/bin/mktemp --tmpdir -d qrscan.XXXXXXXX) + codefile=$tmpdir/code + + cleanup() { + ${coreutils}/bin/rm "$codefile" + ${coreutils}/bin/rmdir "$tmpdir" + } + + ${coreutils}/bin/mkfifo "$codefile" + + ${zbar}/bin/zbarcam > "$codefile" & + zbarcampid=$! + + exec < "$codefile" + while read -r code; do + code=$(printf %s "$code" | ${gnused}/bin/sed -n 's/^QR-Code://p') + if test -n "$code"; then + ${coreutils}/bin/kill "$zbarcampid" + echo "$code" + fi + done +'' -- cgit v1.2.3