[tracker] Fixes GB#614449 - tracker-extract module directory should be environment configurable



commit 7033ca74a57e54fe7a59f7c6d49c73505197a84f
Author: Martyn Russell <martyn lanedo com>
Date:   Wed Mar 31 12:22:12 2010 +0100

    Fixes GB#614449 - tracker-extract module directory should be environment configurable

 docs/manpages/tracker-extract.1       |    8 ++++++++
 src/tracker-extract/Makefile.am       |    2 +-
 src/tracker-extract/tracker-extract.c |   12 ++++++++++--
 3 files changed, 19 insertions(+), 3 deletions(-)
---
diff --git a/docs/manpages/tracker-extract.1 b/docs/manpages/tracker-extract.1
index 69e510c..8d0385b 100644
--- a/docs/manpages/tracker-extract.1
+++ b/docs/manpages/tracker-extract.1
@@ -72,6 +72,14 @@ Using a specific module to extract metadata from a file:
 .BR 
 $ tracker-extract -v 3 -f /path/to/some/file.mp3 -m mymodule
 
+.SH ENVIRONMENT
+.TP
+.B TRACKER_EXTRACTORS_DIR
+This is the directory which tracker uses to load the shared libraries
+from (used for extracting metadata for specific file types). These are
+needed on each invocation of tracker-store. If unset it will default
+to the correct place. This is used mainly for testing purposes.
+
 .SH FILES
 .I $HOME/.config/tracker/tracker-extract.cfg
 
diff --git a/src/tracker-extract/Makefile.am b/src/tracker-extract/Makefile.am
index 47d7397..1346b0b 100644
--- a/src/tracker-extract/Makefile.am
+++ b/src/tracker-extract/Makefile.am
@@ -5,7 +5,7 @@ modulesdir = $(libdir)/tracker-$(TRACKER_API_VERSION)/extract-modules
 
 INCLUDES = 								\
 	-DLOCALEDIR=\""$(localedir)"\" 					\
-	-DMODULESDIR=\"$(modulesdir)\"					\
+	-DTRACKER_EXTRACTORS_DIR=\"$(modulesdir)\"			\
 	-DG_LOG_DOMAIN=\"Tracker\"					\
 	-DTRACKER_COMPILATION						\
 	-I$(top_srcdir)/src 						\
diff --git a/src/tracker-extract/tracker-extract.c b/src/tracker-extract/tracker-extract.c
index 3d79ae5..ab9c8a9 100644
--- a/src/tracker-extract/tracker-extract.c
+++ b/src/tracker-extract/tracker-extract.c
@@ -113,8 +113,16 @@ load_modules (const gchar  *force_module,
 	const gchar *name;
 	gchar *force_module_checked;
 	gboolean success;
+	const gchar *extractors_dir;
 
-	dir = g_dir_open (MODULESDIR, 0, &error);
+        extractors_dir = g_getenv ("TRACKER_EXTRACTORS_DIR");
+        if (G_LIKELY (extractors_dir == NULL)) {
+                extractors_dir = TRACKER_EXTRACTORS_DIR;
+        } else {
+                g_message ("Extractor modules directory is '%s' (set in env)", extractors_dir);
+        }
+
+	dir = g_dir_open (extractors_dir, 0, &error);
 
 	if (!dir) {
 		g_error ("Error opening modules directory: %s", error->message);
@@ -166,7 +174,7 @@ load_modules (const gchar  *force_module,
 			continue;
 		}
 
-		module_path = g_build_filename (MODULESDIR, name, NULL);
+		module_path = g_build_filename (extractors_dir, name, NULL);
 
 		module = g_module_open (module_path, G_MODULE_BIND_LOCAL);
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]