Skip to content

Instantly share code, notes, and snippets.

@bastos77
Last active September 8, 2022 09:25
Show Gist options
  • Star 2 You must be signed in to star a gist
  • Fork 4 You must be signed in to fork a gist
  • Save bastos77/0c47a94dd0bf3e394f879c0ff42b7839 to your computer and use it in GitHub Desktop.
Save bastos77/0c47a94dd0bf3e394f879c0ff42b7839 to your computer and use it in GitHub Desktop.
ubuntu touch SOGo-syncevolution syncronisation script
#!/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
@bastos77
Copy link
Author

where DBUS_SESSION_BUS_ADDRESS=$(ps should be replaced by DBUS_SESSION_BUS_ADDRESS=$(ps

Please can you change this script ?

done.

@Marc-Flender
Copy link

Marc-Flender commented May 31, 2022 via email

@bastos77
Copy link
Author

@Marc-Flender thanks. I have changed it.
Sorry

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment