49 lines
1 KiB
Bash
Executable file
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
|