[tracker] tracker-control: Make it possible to start miners
- From: Martyn James Russell <mr src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker] tracker-control: Make it possible to start miners
- Date: Wed, 28 Oct 2009 17:45:29 +0000 (UTC)
commit 7e1c7986611cf8d45fcbc063761ccba6a4abbeb4
Author: Martyn Russell <martyn lanedo com>
Date: Wed Oct 28 16:02:08 2009 +0000
tracker-control: Make it possible to start miners
src/tracker-control/tracker-control.c | 60 +++++++++++++++++++++++++++++----
1 files changed, 53 insertions(+), 7 deletions(-)
---
diff --git a/src/tracker-control/tracker-control.c b/src/tracker-control/tracker-control.c
index 5266b9c..ef4e07d 100644
--- a/src/tracker-control/tracker-control.c
+++ b/src/tracker-control/tracker-control.c
@@ -33,12 +33,14 @@
#include <glib/gprintf.h>
#include <libtracker-common/tracker-common.h>
-
-#include <libtracker-db/tracker-db-manager.h>
+#include <libtracker-db/tracker-db.h>
+#include <libtracker-miner/tracker-miner-manager.h>
static gboolean should_kill;
static gboolean should_terminate;
-static gboolean hard_reset, soft_reset;
+static gboolean hard_reset;
+static gboolean soft_reset;
+static gboolean start;
static GOptionEntry entries[] = {
{ "kill", 'k', 0, G_OPTION_ARG_NONE, &should_kill,
@@ -48,12 +50,15 @@ static GOptionEntry entries[] = {
N_("Use SIGTERM to stop all tracker processes found"),
NULL
},
- { "soft-reset", 's', 0, G_OPTION_ARG_NONE, &soft_reset,
- N_("This will kill all Tracker processes and remove all databases except the backup and journal (a restart will restore the data)"),
- NULL },
{ "hard-reset", 'r', 0, G_OPTION_ARG_NONE, &hard_reset,
N_("This will kill all Tracker processes and remove all databases"),
NULL },
+ { "soft-reset", 'e', 0, G_OPTION_ARG_NONE, &soft_reset,
+ N_("Same as --hard-reset but the backup & journal are restored after restart"),
+ NULL },
+ { "start", 's', 0, G_OPTION_ARG_NONE, &start,
+ N_("Starts miners (which indirectly starts tracker-store too)"),
+ NULL },
{ NULL }
};
@@ -150,7 +155,11 @@ main (int argc, char **argv)
return EXIT_FAILURE;
} else if ((hard_reset || soft_reset) && should_terminate) {
g_printerr ("%s\n",
- _("You can not use the --terminate with --hard-reset, --kill is implied"));
+ _("You can not use the --terminate with --hard-reset or --soft-reset, --kill is implied"));
+ return EXIT_FAILURE;
+ } else if (hard_reset && soft_reset) {
+ g_printerr ("%s\n",
+ _("You can not use the --hard-reset and --soft-reset arguments together"));
return EXIT_FAILURE;
}
@@ -266,5 +275,42 @@ main (int argc, char **argv)
g_log_remove_handler (NULL, log_handler_id);
}
+ if (start) {
+ TrackerMinerManager *manager;
+ GSList *miners, *l;
+
+ manager = tracker_miner_manager_new ();
+ miners = tracker_miner_manager_get_available (manager);
+
+ g_print ("%s\n", _("Starting minersâ?¦"));
+
+ /* Get the status of all miners, this will start all
+ * miners not already running.
+ */
+
+ for (l = miners; l; l = l->next) {
+ const gchar *display_name;
+ gdouble progress = 0.0;
+
+ display_name = tracker_miner_manager_get_display_name (manager, l->data);
+
+ if (!tracker_miner_manager_get_status (manager, l->data, NULL, &progress)) {
+ g_printerr (" %s: %s (%s)\n",
+ _("Failed"),
+ display_name,
+ _("Could not get miner status"));
+ } else {
+ g_print (" %s: %s (%3.0f%%)\n",
+ _("Done"),
+ display_name,
+ progress * 100);
+ }
+
+ g_free (l->data);
+ }
+
+ g_slist_free (miners);
+ }
+
return EXIT_SUCCESS;
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]