summaryrefslogtreecommitdiff
path: root/services/evolution-source-registry
diff options
context:
space:
mode:
authorTristan Van Berkom <tristanvb@openismus.com>2013-11-20 15:08:54 +0900
committerTristan Van Berkom <tristanvb@openismus.com>2013-11-22 22:58:18 +0900
commit10fd759147b583f514e7dad562178d494e5f3473 (patch)
tree402150ad574529a3e6e5fc52a11558749df1c65e /services/evolution-source-registry
parent07fa75f059e6bfd452298414ca5e9f7d1a63a340 (diff)
downloadevolution-data-server-10fd759147b583f514e7dad562178d494e5f3473.tar.gz
Bug 712728 - Add --disable-migration option to evolution-source-registry
This allows one to run the EDS processes in relocated XDG user data directories, without the registry stealing your user data from ~/.evolution or previous versions.
Diffstat (limited to 'services/evolution-source-registry')
-rw-r--r--services/evolution-source-registry/evolution-source-registry.c46
1 files changed, 35 insertions, 11 deletions
diff --git a/services/evolution-source-registry/evolution-source-registry.c b/services/evolution-source-registry/evolution-source-registry.c
index 6aeced4d6..a485c00c8 100644
--- a/services/evolution-source-registry/evolution-source-registry.c
+++ b/services/evolution-source-registry/evolution-source-registry.c
@@ -32,6 +32,14 @@
#define RESOURCE_PATH_RO_SOURCES "/org/gnome/evolution-data-server/ro-sources"
#define RESOURCE_PATH_RW_SOURCES "/org/gnome/evolution-data-server/rw-sources"
+static gboolean opt_disable_migration = FALSE;
+
+static GOptionEntry entries[] = {
+ { "disable-migration", 'd', 0, G_OPTION_ARG_NONE, &opt_disable_migration,
+ N_("Don't migrate user data from previous versions of Evolution"), NULL },
+ { NULL }
+};
+
/* Forward Declarations */
void evolution_source_registry_migrate_basedir (void);
void evolution_source_registry_migrate_sources (void);
@@ -103,7 +111,8 @@ evolution_source_registry_load_all (ESourceRegistryServer *server,
return FALSE;
/* Migrate proxy settings from Evolution. */
- evolution_source_registry_migrate_proxies (server);
+ if (!opt_disable_migration)
+ evolution_source_registry_migrate_proxies (server);
/* Signal that all files are now loaded. One thing this
* does is tell the cache-reaper module to start scanning
@@ -117,6 +126,7 @@ gint
main (gint argc,
gchar **argv)
{
+ GOptionContext *context;
EDBusServer *server;
EDBusServerExitCode exit_code;
GError *error = NULL;
@@ -125,6 +135,16 @@ main (gint argc,
bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+ context = g_option_context_new (NULL);
+ g_option_context_add_main_entries (context, entries, GETTEXT_PACKAGE);
+ g_option_context_parse (context, &argc, &argv, &error);
+ g_option_context_free (context);
+
+ if (error != NULL) {
+ g_printerr ("%s\n", error->message);
+ exit (EXIT_FAILURE);
+ }
+
#if defined (ENABLE_MAINTAINER_MODE) && defined (HAVE_GTK)
if (g_getenv ("EDS_TESTING") == NULL)
/* This is only to load gtk-modules, like
@@ -135,13 +155,16 @@ main (gint argc,
e_gdbus_templates_init_main_thread ();
reload:
- /* Migrate user data from ~/.evolution to XDG base directories. */
- evolution_source_registry_migrate_basedir ();
- /* Migrate ESource data from GConf XML blobs to key files.
- * Do this AFTER XDG base directory migration since the key
- * files are saved according to XDG base directory settings. */
- evolution_source_registry_migrate_sources ();
+ if (!opt_disable_migration) {
+ /* Migrate user data from ~/.evolution to XDG base directories. */
+ evolution_source_registry_migrate_basedir ();
+
+ /* Migrate ESource data from GConf XML blobs to key files.
+ * Do this AFTER XDG base directory migration since the key
+ * files are saved according to XDG base directory settings. */
+ evolution_source_registry_migrate_sources ();
+ }
server = e_source_registry_server_new ();
@@ -151,10 +174,11 @@ reload:
NULL);
/* Convert "imap" mail accounts to "imapx". */
- g_signal_connect (
- server, "tweak-key-file", G_CALLBACK (
- evolution_source_registry_migrate_imap_to_imapx),
- NULL);
+ if (!opt_disable_migration)
+ g_signal_connect (
+ server, "tweak-key-file", G_CALLBACK (
+ evolution_source_registry_migrate_imap_to_imapx),
+ NULL);
/* Failure here is fatal. Don't even try to keep going. */
evolution_source_registry_load_all (