qrscan: use new one shot scanning mode
This commit is contained in:
parent
44ec31fe02
commit
1fc622cd08
|
@ -1,27 +1,7 @@
|
||||||
{ coreutils, gnused, writeDashBin, zbar }:
|
{ pkgs }:
|
||||||
|
|
||||||
writeDashBin "qrscan" ''
|
pkgs.writeDashBin "qrscan" ''
|
||||||
set -efu
|
set -efu
|
||||||
|
|
||||||
tmpdir=$(${coreutils}/bin/mktemp --tmpdir -d qrscan.XXXXXXXX)
|
${pkgs.zbar}/bin/zbarcam -1 | ${pkgs.gnused}/bin/sed -n 's/^QR-Code://p'
|
||||||
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
|
|
||||||
''
|
''
|
||||||
|
|
Loading…
Reference in New Issue
Block a user