[evolution-data-server] Added EDS_ADDRESS_BOOK_MODULES and EDS_CALENDAR_MODULES
- From: Tristan Van Berkom <tvb src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [evolution-data-server] Added EDS_ADDRESS_BOOK_MODULES and EDS_CALENDAR_MODULES
- Date: Sat, 15 Dec 2012 05:44:39 +0000 (UTC)
commit a18ce519725e700b8cb5b9c2723a5e8ef797ad28
Author: Tristan Van Berkom <tristanvb openismus com>
Date: Thu Dec 13 15:46:45 2012 +0900
Added EDS_ADDRESS_BOOK_MODULES and EDS_CALENDAR_MODULES
Allows specification of alternative paths to search for modules
for addressbook and calendar. Note that these *replace* the default
system path, not augment it. This is intended to ensure that we
dont load installed modules from the system when running test cases.
addressbook/libedata-book/e-data-book-factory.c | 9 ++++++++-
addressbook/libedata-book/e-data-book-factory.h | 9 +++++++++
calendar/libedata-cal/e-data-cal-factory.c | 9 ++++++++-
calendar/libedata-cal/e-data-cal-factory.h | 8 ++++++++
4 files changed, 33 insertions(+), 2 deletions(-)
---
diff --git a/addressbook/libedata-book/e-data-book-factory.c b/addressbook/libedata-book/e-data-book-factory.c
index a6ba6f8..1c50c23 100644
--- a/addressbook/libedata-book/e-data-book-factory.c
+++ b/addressbook/libedata-book/e-data-book-factory.c
@@ -440,6 +440,13 @@ e_data_book_factory_class_init (EDataBookFactoryClass *class)
GObjectClass *object_class;
EDBusServerClass *dbus_server_class;
EDataFactoryClass *data_factory_class;
+ const gchar *modules_directory = BACKENDDIR;
+ const gchar *modules_directory_env;
+
+ modules_directory_env = g_getenv (EDS_ADDRESS_BOOK_MODULES);
+ if (modules_directory_env &&
+ g_file_test (modules_directory_env, G_FILE_TEST_IS_DIR))
+ modules_directory = g_strdup (modules_directory_env);
g_type_class_add_private (class, sizeof (EDataBookFactoryPrivate));
@@ -450,7 +457,7 @@ e_data_book_factory_class_init (EDataBookFactoryClass *class)
dbus_server_class = E_DBUS_SERVER_CLASS (class);
dbus_server_class->bus_name = ADDRESS_BOOK_DBUS_SERVICE_NAME;
- dbus_server_class->module_directory = BACKENDDIR;
+ dbus_server_class->module_directory = modules_directory;
dbus_server_class->bus_acquired = data_book_factory_bus_acquired;
dbus_server_class->bus_name_lost = data_book_factory_bus_name_lost;
dbus_server_class->quit_server = data_book_factory_quit_server;
diff --git a/addressbook/libedata-book/e-data-book-factory.h b/addressbook/libedata-book/e-data-book-factory.h
index 00142bb..194d1ca 100644
--- a/addressbook/libedata-book/e-data-book-factory.h
+++ b/addressbook/libedata-book/e-data-book-factory.h
@@ -46,6 +46,15 @@
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_DATA_BOOK_FACTORY, EDataBookFactoryClass))
+
+/**
+ * EDS_ADDRESS_BOOK_MODULES:
+ *
+ * This environment variable configures where the address book
+ * factory loads it's backend modules from.
+ */
+#define EDS_ADDRESS_BOOK_MODULES "EDS_ADDRESS_BOOK_MODULES"
+
G_BEGIN_DECLS
typedef struct _EDataBookFactory EDataBookFactory;
diff --git a/calendar/libedata-cal/e-data-cal-factory.c b/calendar/libedata-cal/e-data-cal-factory.c
index 435b688..7c5f1b1 100644
--- a/calendar/libedata-cal/e-data-cal-factory.c
+++ b/calendar/libedata-cal/e-data-cal-factory.c
@@ -474,6 +474,13 @@ e_data_cal_factory_class_init (EDataCalFactoryClass *class)
GObjectClass *object_class;
EDBusServerClass *dbus_server_class;
EDataFactoryClass *data_factory_class;
+ const gchar *modules_directory = BACKENDDIR;
+ const gchar *modules_directory_env;
+
+ modules_directory_env = g_getenv (EDS_CALENDAR_MODULES);
+ if (modules_directory_env &&
+ g_file_test (modules_directory_env, G_FILE_TEST_IS_DIR))
+ modules_directory = g_strdup (modules_directory_env);
g_type_class_add_private (class, sizeof (EDataCalFactoryPrivate));
@@ -484,7 +491,7 @@ e_data_cal_factory_class_init (EDataCalFactoryClass *class)
dbus_server_class = E_DBUS_SERVER_CLASS (class);
dbus_server_class->bus_name = CALENDAR_DBUS_SERVICE_NAME;
- dbus_server_class->module_directory = BACKENDDIR;
+ dbus_server_class->module_directory = modules_directory;
dbus_server_class->bus_acquired = data_cal_factory_bus_acquired;
dbus_server_class->bus_name_lost = data_cal_factory_bus_name_lost;
dbus_server_class->quit_server = data_cal_factory_quit_server;
diff --git a/calendar/libedata-cal/e-data-cal-factory.h b/calendar/libedata-cal/e-data-cal-factory.h
index 92ad3be..e48f4b9 100644
--- a/calendar/libedata-cal/e-data-cal-factory.h
+++ b/calendar/libedata-cal/e-data-cal-factory.h
@@ -47,6 +47,14 @@
(G_TYPE_INSTANCE_GET_CLASS \
((obj), E_TYPE_DATA_CAL_FACTORY, EDataCalFactoryClass))
+/**
+ * EDS_CALENDAR_MODULES:
+ *
+ * This environment variable configures where the calendar
+ * factory loads it's backend modules from.
+ */
+#define EDS_CALENDAR_MODULES "EDS_CALENDAR_MODULES"
+
G_BEGIN_DECLS
typedef struct _EDataCalFactory EDataCalFactory;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]