#!/bin/bash
######################################################################
#Copyright (C) 2023 Kris Occhipinti
#https://filmsbykris.com
#This program is free software: you can redistribute it and/or modify
#it under the terms of the GNU General Public License as published by
#the Free Software Foundation version 3 of the License.
#This program is distributed in the hope that it will be useful,
#but WITHOUT ANY WARRANTY; without even the implied warranty of
#MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
#GNU General Public License for more details.
#You should have received a copy of the GNU General Public License
#along with this program. If not, see .
######################################################################
#converts VCARD file to a simple CSV with just Names and Numbers
tmp_dir="/tmp/contact_split"
vcard_dir="$HOME/Documents/$(date +%Y)/phone/sync"
vcard_file="${vcard_dir}/contacts.vcard"
csv_file="${vcard_dir}/contacts.csv"
mkdir -p "$tmp_dir"
cd "$tmp_dir" || exit 1
csplit -z "$vcard_file" /BEGIN:VCARD/ '{*}' > /dev/null
function create_csv(){
f="$1"
name="$(grep "^FN:" "$f"|sed 's/FN://g'|dos2unix)"
numbers="$(grep "^TEL" "$f"| sed 's/[^0-9]*//g'|tr "\n" ","|dos2unix)"
echo "${name},${numbers}"
} >> $csv_file
echo -n "Converting Vcard to CSV..."
for f in *
do
echo -n "."
grep -q "^TEL" "$f" && grep -q "^FN" "$f" && create_csv "$f"
done
#clean up
grep -v ",$" "$csv_file"|grep -v "^[0-9]"|sort -u| sponge "$csv_file"
echo
echo "$csv_file created."
rm -fr "$tmp_dir"