Forked from bastos77/SOGO-Syncevolution-Syncscript.sh
Last active
February 6, 2018 13:09
-
-
Save vanyasem/379095d25ac350676fc70c42efe17c8c to your computer and use it in GitHub Desktop.
ubuntu touch SOGo-syncevolution syncronisation script
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# This script is a draft combination of the script found at https://gist.github.com/tcarrondo | |
# It is more or less to remember what I have done to make it work for my Fairphone 2 with UBports ubuntu touch | |
# Combined by me: Sebastian Gallehr <[email protected]> | |
# Thanks to: Tiago Carrondo <[email protected]> | |
# Thanks to: Romain Fluttaz <[email protected]> | |
# Thanks to: Wayne Ward <[email protected]> | |
# Thanks to: Mitchell Reese <[email protected]> | |
# --------------- [ Server ] ---------------- # | |
CAL_URL="https://..." # insert the CalDAV URL here | |
CONTACTS_URL="https://..." # insert the CardDAV URL here | |
USERNAME="" # your CalDAV/CardDAV username | |
PASSWORD="" # your CalDAV/CardDAV password | |
# ----------------- [ 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" # a nice name to show on the Calendar app like "OwnCalendar" | |
CONTACTS_NAME="sogoadressen" # I use "personalcontacts" | |
CONTACTS_VISUAL_NAME="sogoadressen" # a nice name to show on the Contacts app like "OwnContacts" | |
CRON_FREQUENCY="hourly" # Sync frequency, 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 Cron job | |
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_NAME && /usr/bin/syncevolution $CONTACTS_NAME" | |
sudo sh -c "echo '$COMMAND_LINE' > /sbin/sogosync" | |
sudo chmod +x /sbin/sogosync | |
CRON_LINE="@$CRON_FREQUENCY /sbin/sogosync" | |
(crontab -u phablet -r;) # only if no other cron jobs already exist in crontab | |
(crontab -u phablet -l; echo "$CRON_LINE" ) | crontab -u phablet - | |
sudo mount / -o remount,ro | |
sudo service cron restart |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment