#!/bin/bash -e # Adapted for the L5 with gnome-contacts # Original Script: https://www.isticktoit.net/?p=1536 function usage() { echo "Usage: $0 " 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