#!/bin/bash | |
# This script is a draft combination of the script found at https://gist.github.com/tcarrondo | |
# It is what I have done to make it work for my Fairphone 2 with UBports ubuntu touch 16.04 | |
# Combined by me: Sebastian Gallehr <sebastian@gallehr.de> | |
# Thanks to: Tiago Carrondo <tcarrondo@ubuntu.com> | |
# Thanks to: Romain Fluttaz <romain@botux.fr> | |
# Thanks to: Wayne Ward <info@wayneward.co.uk> | |
# Thanks to: Mitchell Reese <mitchell@curiouslegends.com.au> | |
# --------------- [ Server ] ---------------- # | |
CAL_URL="https://..." # add the caldav URL here | |
CONTACTS_URL="https://...." # add the carddav URL here | |
USERNAME="" # you know this one | |
PASSWORD="" # lots of ****** | |
# ----------------- [ Phone ] ----------------- # | |
CALENDAR_CONFIG_NAME="sogokalender" # I use "myCloud" | |
CONTACTS_CONFIG_NAME="sogoadressen" # I use "myCloud" | |
CALENDAR_NAME="sogokalender" # I use "personalcalendar" | |
CALENDAR_VISUAL_NAME="sogokalender" # you can choose a nice name to show on the calendar app like "OwnCalendar" | |
CONTACTS_NAME="sogoadressen" # I use "personalcontacts" | |
CONTACTS_VISUAL_NAME="sogoadressen" # you can choose a nice name to show on the contacts app like "OwnContacts" | |
CRON_FREQUENCY="hourly" # I use "hourly" | |
export DBUS_SESSION_BUS_ADDRESS=$(ps -u phablet e | grep -Eo 'dbus-daemon.*address=unix:abstract=/tmp/dbus-[A-Za-z0-9]{10}' | tail -c35) | |
#Create Calendar | |
syncevolution --create-database backend=evolution-calendar database=$CALENDAR_VISUAL_NAME | |
#Create Peer | |
syncevolution --configure --template webdav username=$USERNAME password=$PASSWORD syncURL=$CAL_URL keyring=no target-config@$CALENDAR_CONFIG_NAME | |
#Create New Source | |
syncevolution --configure backend=evolution-calendar database=$CALENDAR_VISUAL_NAME @default $CALENDAR_NAME | |
#Add remote database | |
syncevolution --configure database=$CAL_URL backend=caldav target-config@$CALENDAR_CONFIG_NAME $CALENDAR_NAME | |
#Connect remote calendars with local databases | |
syncevolution --configure --template SyncEvolution_Client syncURL=local://@$CALENDAR_CONFIG_NAME $CALENDAR_CONFIG_NAME $CALENDAR_NAME | |
#Add local database to the source | |
syncevolution --configure sync=two-way database=$CALENDAR_VISUAL_NAME $CALENDAR_CONFIG_NAME $CALENDAR_NAME | |
#Start first sync | |
syncevolution --sync refresh-from-remote $CALENDAR_CONFIG_NAME $CALENDAR_NAME | |
#Create contact list | |
syncevolution --create-database backend=evolution-contacts database=$CONTACTS_VISUAL_NAME | |
#Create Peer | |
syncevolution --configure --template webdav username=$USERNAME password=$PASSWORD syncURL=$CONTACTS_URL keyring=no target-config@$CONTACTS_CONFIG_NAME | |
#Create New Source | |
syncevolution --configure backend=evolution-contacts database=$CONTACTS_VISUAL_NAME @default $CONTACTS_NAME | |
#Add remote database | |
syncevolution --configure database=$CONTACTS_URL backend=carddav target-config@$CONTACTS_CONFIG_NAME $CONTACTS_NAME | |
#Connect remote contact list with local databases | |
syncevolution --configure --template SyncEvolution_Client Sync=None syncURL=local://@$CONTACTS_CONFIG_NAME $CONTACTS_CONFIG_NAME $CONTACTS_NAME | |
#Add local database to the source | |
syncevolution --configure sync=two-way backend=evolution-contacts database=$CONTACTS_VISUAL_NAME $CONTACTS_CONFIG_NAME $CONTACTS_NAME | |
#Start first sync | |
syncevolution --sync refresh-from-remote $CONTACTS_CONFIG_NAME $CONTACTS_NAME | |
#Add Sync Cronjob | |
sudo mount / -o remount,rw | |
COMMAND_LINE="export DISPLAY=:0.0 && export DBUS_SESSION_BUS_ADDRESS=$(ps -u phablet e | grep -Eo 'dbus-daemon.*address=unix:abstract=/tmp/dbus-[A-Za-z0-9]{10}' | tail -c35) && /usr/bin/syncevolution $CALENDAR_CONFIG_NAME && /usr/bin/syncevolution $CONTACTS_CONFIG_NAME" | |
sudo echo "$COMMAND_LINE" > /sbin/sogosync | |
sudo chmod +x /sbin/sogosync | |
CRON_LINE="@$CRON_FREQUENCY /sbin/sogosync" | |
(crontab -u phablet -r;) # only if no other cronjob already exist in the crontab | |
(crontab -u phablet -l; echo "$CRON_LINE" ) | crontab -u phablet - | |
sudo mount / -o remount,ro | |
sudo service cron restart |
This comment has been minimized.
This comment has been minimized.
Thanks! works for me(PRO5/Ubports) making some changes... -at line 61: |
This comment has been minimized.
This comment has been minimized.
Forked this gist with patched above applied |
This comment has been minimized.
This comment has been minimized.
added CONTACT_URL in line 11 thanks to olisax |
This comment has been minimized.
This comment has been minimized.
How can i edit line 25 CRON_FREQUENCY="hourly" # I use "hourly" ? |
This comment has been minimized.
This comment has been minimized.
Hi will this work with the latest Ubuntu Touch 16.04 (OTA-10) ? |
This comment has been minimized.
This comment has been minimized.
Yes, it works. And really reliable. But unfortunately not the cron job. So no automatic regular sync. My workaround is, that I start the script in terminal manually (type |
This comment has been minimized.
This comment has been minimized.
I notice that on the doc there: http://docs.ubports.com/en/latest/userguide/advanceduse/dav.html also ligne 11 replace |
This comment has been minimized.
This comment has been minimized.
Hi, did you ever resolve this? |
This comment has been minimized.
This comment has been minimized.
-bash: sogosync: command not found |
This comment has been minimized.
This comment has been minimized.
Personally I don't because the cronjob as such is not working for me anymore as stated above. |
This comment has been minimized.
This comment has been minimized.
I managed to make it work now. First I removed the existing contacts: syncevolution --remove-database backend=evolution-contacts database=NextContacts Next I removed files/folder in .cache/syncevolution Then I installed again the script. To manually launch an update, I open a Terminal on the device and type: (CALENDAR_CONFIG_NAME=myCloud) Cheers |
This comment has been minimized.
This comment has been minimized.
I use UT 16.04 (OTA-12) and calendar sync with nextcloud is now supported in the calendar app via gui but contacts unfortunately still not, |
This comment has been minimized.
This comment has been minimized.
Okay now it works. I follow this tutorial https://help.ubuntu.com/community/SyncEvolution/synchronize-google-contacts-with-evolution-addressbooks and made some adjustments. I do it without a script an run the commands in descending order in the adb shell: `#config=next-conf #0. create database #1. create peer #2. create new datastore #3. Add a remote database to the datastore #4. Connect remote Contacts with the local Database #5. Add a local database to the datastore #6 first time syncing |
This comment has been minimized.
On line 11 you should also define CONTACTS_URL="https://..." otherwise on line 50 there are no contacts to import...