72 lines
1.5 KiB
Text
72 lines
1.5 KiB
Text
|
#!/bin/bash -e
|
||
|
|
||
|
# Adapted for the L5 with gnome-contacts
|
||
|
# Original Script: https://www.isticktoit.net/?p=1536
|
||
|
|
||
|
function usage()
|
||
|
{
|
||
|
echo "Usage: $0 <vcard-file>"
|
||
|
exit 0
|
||
|
}
|
||
|
|
||
|
NOTIFY_SEND="notify-send -i preferences-desktop-personal"
|
||
|
|
||
|
case "$1" in
|
||
|
--help|-h|-?)
|
||
|
usage
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
|
||
|
#Selecting a file
|
||
|
|
||
|
if [ -n "$1" ]; then
|
||
|
FILE="$1"
|
||
|
else
|
||
|
FILE=$(yad --title "Import Contacts" --text="Select a VCF file to import" --file=)
|
||
|
fi
|
||
|
|
||
|
if [ "$FILE" == "" ]; then
|
||
|
yad --title "Import Contacts" --text="You did not selected any file"
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
$NOTIFY_SEND -t 1000 "Import Contacts" "Importing Contacts from $FILE"
|
||
|
|
||
|
#Name of the database where the contacts will be imported to.
|
||
|
CONTACTDB=$(syncevolution --print-databases | grep "system-address-book"| sed 's#(.*##' | sed 's# ##g' )
|
||
|
|
||
|
#Temp directory to mess with files:
|
||
|
|
||
|
TEMP=$(mktemp -d -t contacts-importer-XXXXXXXXXXXXX-"$(date +%Y-%m-%d-%H-%M-%S)")
|
||
|
|
||
|
#Some control info to make sure the file is a vcard
|
||
|
|
||
|
MIMETYPE=$(file --mime-type -b "$FILE")
|
||
|
CONTROL="text/vcard"
|
||
|
|
||
|
if [[ "$MIMETYPE" != "$CONTROL" ]]; then
|
||
|
$NOTIFY_SEND -t 1000 "File is not a vcard! Bye!" && exit 1
|
||
|
fi
|
||
|
|
||
|
#Begin importing contacts
|
||
|
|
||
|
cd "$TEMP"
|
||
|
|
||
|
awk ' /BEGIN:VCARD/ { ++a; fn=sprintf("card_import_L5_%02d.vcf", a); print "Writing: ", fn } { print $0 >> fn; } ' "$FILE"
|
||
|
|
||
|
RET=0
|
||
|
for f in "$TEMP"/card_import_L5*
|
||
|
do
|
||
|
syncevolution --import "${f%}" backend=evolution-contacts database="${CONTACTDB}" || RET=1
|
||
|
done
|
||
|
|
||
|
if [ $RET -eq 0 ]
|
||
|
then
|
||
|
$NOTIFY_SEND "Successful import"
|
||
|
exit 0
|
||
|
else
|
||
|
$NOTIFY_SEND "Error"
|
||
|
exit 1
|
||
|
fi
|