24 lines
970 B
Bash
Executable file
24 lines
970 B
Bash
Executable file
#!/bin/sh
|
|
VDIR="$HOME/.local/share/contacts"
|
|
|
|
QUERY="$(grep -r '^FN:' "$VDIR" | sed 's/.*://' | menu "Contact:")"
|
|
[ -z "$QUERY" ] && exit 0
|
|
FILE="$(grep -r "^FN:$QUERY" "$VDIR" | cut -d ':' -f 1)"
|
|
|
|
if [ -e "$FILE" ] ; then
|
|
NAME="$QUERY"
|
|
else
|
|
LIST="$(grep -ir "$QUERY" "$VDIR" | cut -d ':' -f 1 | uniq | tr '\n' ' ')"
|
|
NAME="$(for VCARD in $LIST ; do grep -r 'FN' "$VCARD" | cut -d ':' -f 2 ; done | menu "'$QUERY' results:")"
|
|
FILE="$(grep -r "^FN:$NAME" "$VDIR" | cut -d ':' -f 1)"
|
|
fi ; [ -z "$FILE" ] && exit 0
|
|
|
|
OUT="$(sed -e '/^.*:VCARD/d;/^VERSION:/d;/^PRODID:/d;/^UID:/d' \
|
|
-e '/^FN:/d;/^N:/d;/^NICKNAME:/d;/^REV:/d' \
|
|
-e 's/^EMAIL.*:/ /;s/^TEL.*:/ /' \
|
|
-e 's/^TITLE.*:/ /;s/^ORG.*:/ /' \
|
|
-e 's/^.*://g' "$FILE")"
|
|
|
|
VALUE="$(printf '%s\n VCARD' "$OUT" | menu " $NAME:" | cut -c 6- | tr -d '\n' | sed 's/\s*$//g')"
|
|
[ "$VALUE" = "VCARD" ] && qrencode -s 8 -t PNG -o - -r "$FILE" | display && exit 0
|
|
wl-copy "$VALUE"
|