Převod kontaktů z GPE do Muttu

Nadějný program OpenSync zatím není dostatečně stabilní a tak jsem napsal quick'n'dirty skript na převod kontaktů z GPE do formátu čitelného poštovním programem Mutt.

Ve skriptu je nadefinováno umístění sqlite databáze kontaktů z programu gpe-contacts, která je standardně umístěna v ~/.gpe/contacts. Další definice určuje soubor, do kterého se zapíší aliasy pro Mutt.

#!/bin/bash
# quick'n'dirty GPE to Mutt aliases convertor
DB="/home/drama/gpe/.gpe/contacts"
TBL="contacts"
MUTT="/home/drama/.mail_aliases"
NON_MAIL="drama@localhost"
MAX=$(sqlite $DB "select max(urn) from $TBL")
mv -f $MUTT $MUTT.bkp 2>/dev/null
for URN in $(seq 1 $MAX) ; do
JMENO=$(sqlite $DB "select value from $TBL where urn=$URN AND tag='NAME'")
EMAIL=$(sqlite $DB "select value from $TBL where urn=$URN AND tag='HOME.EMAIL'")
WPHONE=$(sqlite $DB "select value from $TBL where urn=$URN AND tag='WORK.TELEPHONE'")
WMOBILE=$(sqlite $DB "select value from $TBL where urn=$URN AND tag='WORK.MOBILE'")
PHONE=$(sqlite $DB "select value from $TBL where urn=$URN AND tag='HOME.TELEPHONE'")
MOBILE=$(sqlite $DB "select value from $TBL where urn=$URN AND tag='HOME.MOBILE'")
KATEGORIE=$(sqlite $DB "select value from $TBL where urn=$URN AND tag='CATEGORY'")
if [ ! -n "$EMAIL" ] ; then
EMAIL=$NON_MAIL
fi
JM=$(echo $JMENO | cstocs utf8 il2 )
ALIAS=$(echo $JMENO | cstocs utf8 ascii | sed 's/ //g' | tr '[:upper:]' '[:lower:]')
if [ -n "$JMENO" ] ; then
echo "alias $ALIAS $JM # $MOBILE $PHONE $WPHONE $WMOBILE" >> $MUTT
if [ -z "$PHONE" -a -z "$MOBILE" -a -z "$WPHONE" -a -z "$WMOBILE" ] ; then
echo "$JM nemá definován telefon."
fi
if [ -z "$KATEGORIE" ] ; then
echo "$JM nemá definovanou kategorii."
fi
if [ $EMAIL == "$NON_MAIL" ] ; then
echo "$JM nemá definován email."
fi
fi
done

Seznam aliasů je rozšířen o telefonní čísla, v příkazovém řádku používám pro hledání skript sez, který jen prohledává výskyt hledaného řetězce ve výše vygenerovaném souboru.

#!/bin/bash
grep -i $@ ~/.mail_aliases | sed s/alias/""/g


kategorie: linux