diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2017-06-19 20:30:32 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2017-06-29 20:49:06 +0200 |
commit | 4ba8fa4b3b3d61b65c9063ef0eb91b73bb384ace (patch) | |
tree | a26ea27426c28f0e414445de240606df6ab03262 | |
parent | 4c79fd099dbfaa8acc0ba4e405e33817213fc717 (diff) | |
download | tracker-4ba8fa4b3b3d61b65c9063ef0eb91b73bb384ace.tar.gz |
tracker-miner-fs: Add --domain-ontology switch
This allows running tracker-miner-fs on other domain ontologies
moderated by a tracker-store daemon. The switch does:
1) Set up the ontology domain for the default TrackerSparqlConnection
2) Make the miner use a DBus name relative to the domain
In result, tracker-miner-fs can take a different DBus name and talk
to other tracker-store instances than the default.
-rw-r--r-- | src/miners/fs/tracker-main.c | 29 |
1 files changed, 26 insertions, 3 deletions
diff --git a/src/miners/fs/tracker-main.c b/src/miners/fs/tracker-main.c index 3219190f8..d2abb9124 100644 --- a/src/miners/fs/tracker-main.c +++ b/src/miners/fs/tracker-main.c @@ -54,7 +54,7 @@ #define SECONDS_PER_DAY 60 * 60 * 24 -#define DBUS_NAME "org.freedesktop.Tracker1.Miner.Files" +#define DBUS_NAME_SUFFIX "Miner.Files" #define DBUS_PATH "/org/freedesktop/Tracker1/Miner/Files" static void miner_handle_next (void); @@ -71,6 +71,7 @@ static gchar *eligible; static gboolean version; static guint miners_timeout_id = 0; static gboolean do_crawling = FALSE; +static gchar *domain_ontology_name = NULL; static GOptionEntry entries[] = { { "verbosity", 'v', 0, @@ -91,6 +92,10 @@ static GOptionEntry entries[] = { G_OPTION_ARG_FILENAME, &eligible, N_("Checks if FILE is eligible for being mined based on configuration"), N_("FILE") }, + { "domain-ontology", 'd', 0, + G_OPTION_ARG_STRING, &domain_ontology_name, + N_("Runs for an specific domain ontology"), + NULL }, { "version", 'V', 0, G_OPTION_ARG_NONE, &version, N_("Displays version information"), @@ -683,6 +688,8 @@ main (gint argc, gchar *argv[]) gboolean store_available; TrackerMinerProxy *proxy; GDBusConnection *connection; + TrackerDomainOntology *domain_ontology; + gchar *dbus_name; main_loop = NULL; @@ -720,6 +727,16 @@ main (gint argc, gchar *argv[]) return EXIT_SUCCESS; } + tracker_sparql_connection_set_domain (domain_ontology_name); + + domain_ontology = tracker_domain_ontology_new (domain_ontology_name, NULL, &error); + if (error) { + g_critical ("Could not load domain ontology '%s': %s", + domain_ontology_name, error->message); + g_error_free (error); + return EXIT_FAILURE; + } + connection = g_bus_get_sync (TRACKER_IPC_BUS, NULL, &error); if (error) { g_critical ("Could not create DBus connection: %s\n", @@ -728,13 +745,18 @@ main (gint argc, gchar *argv[]) return EXIT_FAILURE; } - if (!tracker_dbus_request_name (connection, DBUS_NAME, &error)) { + dbus_name = tracker_domain_ontology_get_domain (domain_ontology, DBUS_NAME_SUFFIX); + + if (!tracker_dbus_request_name (connection, dbus_name, &error)) { g_critical ("Could not request DBus name '%s': %s", - DBUS_NAME, error->message); + dbus_name, error->message); g_error_free (error); + g_free (dbus_name); return EXIT_FAILURE; } + g_free (dbus_name); + /* Initialize logging */ config = tracker_config_new (); @@ -873,6 +895,7 @@ main (gint argc, gchar *argv[]) g_object_unref (proxy); g_object_unref (connection); + g_object_unref (domain_ontology); tracker_writeback_shutdown (); tracker_log_shutdown (); |