dotfiles/scripts/qr-scan
2024-05-03 14:15:16 -06:00

49 lines
1 KiB
Bash
Executable file

#!/bin/sh
FILE="$1"
qr_code () {
[ -n "$1" ] &&
ZBARCMD="zbarimg -q $1" ||
ZBARCMD="zbarcam -q"
$ZBARCMD | while read line ; do
printf '%s\n' "$line"
check="${line#*:}" ; check="${check%%:*}"
case "$check" in
"BEGIN") multiline=1 ;;
"VCARD") multiline= ;;
esac
[ "$multiline" != 1 ] &&
pkill zbarcam &&
return 0
done
}
QRCODE="$(qr_code "$FILE" 2>/dev/null)"
QRCODE="${QRCODE#*:}"
QRTYPE="${QRCODE%%:*}"
case "$QRTYPE" in
"http"|"https"|"gopher"|"gemini"|"ftp"|"ftps"|"sftp"|"ssh"|"git"|"www"|"magnet"|"xmpp"|"mailto"|"nc")
printf '%s\n' "$QRCODE"
printf '%s' "$QRCODE" | xsel -ib
break ;;
"WIFI")
SSID="${QRCODE##*S:}" ; SSID="${SSID%%;[A-Za-z]:*}"
PASSW="${QRCODE##*P:}" ; PASSW="${PASSW%%;[A-Za-z]:*}"
wpa_passphrase "$SSID" "$PASSW"
break ;;
"BEGIN")
printf '%s\n' "$QRCODE"
printf '%s' "$QRCODE" | contact
break ;;
*)
printf '%s\n' "$QRCODE"
break ;;
esac