[tracker/urho-sync] Improvement for tracker-processes util
- From: Philip Van Hoof <pvanhoof src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [tracker/urho-sync] Improvement for tracker-processes util
- Date: Mon, 24 Aug 2009 10:01:01 +0000 (UTC)
commit 6af3250b97b79c4adefa518306081c1e86e42be3
Author: Philip Van Hoof <philip codeminded be>
Date: Mon Aug 24 12:00:15 2009 +0200
Improvement for tracker-processes util
src/libtracker-db/tracker-db-manager.c | 27 +++++++++++++++++++++++----
src/libtracker-db/tracker-db-manager.h | 2 +-
src/tracker-store/tracker-main.c | 2 +-
src/tracker-utils/tracker-processes.c | 9 ++++++---
4 files changed, 31 insertions(+), 9 deletions(-)
---
diff --git a/src/libtracker-db/tracker-db-manager.c b/src/libtracker-db/tracker-db-manager.c
index 9132452..e04255c 100644
--- a/src/libtracker-db/tracker-db-manager.c
+++ b/src/libtracker-db/tracker-db-manager.c
@@ -865,7 +865,7 @@ db_interface_create (TrackerDB db)
}
static void
-db_manager_remove_all (void)
+db_manager_remove_all (gboolean rm_backup_and_log)
{
guint i;
@@ -879,6 +879,25 @@ db_manager_remove_all (void)
dbs[i].abs_filename);
g_unlink (dbs[i].abs_filename);
}
+
+ if (rm_backup_and_log) {
+ GFile *file;
+ gchar *path;
+
+ file = tracker_db_backup_file (NULL, TRACKER_DB_BACKUP_META_FILENAME);
+ path = g_file_get_path (file);
+ g_message (" Removing database:'%s'",
+ path);
+ g_free (path);
+ g_file_delete (file, NULL, NULL);
+ g_object_unref (file);
+ path = tracker_db_journal_filename ();
+ g_message (" Removing database:'%s'",
+ path);
+ file = g_file_new_for_path (path);
+ g_file_delete (file, NULL, NULL);
+ g_object_unref (file);
+ }
}
static TrackerDBVersion
@@ -1206,7 +1225,7 @@ tracker_db_manager_init (TrackerDBManagerFlags flags,
* will cause errors and do nothing.
*/
g_message ("Cleaning up database files for reindex");
- db_manager_remove_all ();
+ db_manager_remove_all (FALSE);
/* In cases where we re-init this module, make sure
* we have cleaned up the ontology before we load all
@@ -1365,11 +1384,11 @@ tracker_db_manager_shutdown (void)
}
void
-tracker_db_manager_remove_all (void)
+tracker_db_manager_remove_all (gboolean rm_backup_and_log)
{
g_return_if_fail (initialized != FALSE);
- db_manager_remove_all ();
+ db_manager_remove_all (rm_backup_and_log);
}
void
diff --git a/src/libtracker-db/tracker-db-manager.h b/src/libtracker-db/tracker-db-manager.h
index eddf10f..95f0dd4 100644
--- a/src/libtracker-db/tracker-db-manager.h
+++ b/src/libtracker-db/tracker-db-manager.h
@@ -53,7 +53,7 @@ gboolean tracker_db_manager_init (TrackerDBManagerFlags flags,
gboolean *need_journal);
void tracker_db_manager_shutdown (void);
-void tracker_db_manager_remove_all (void);
+void tracker_db_manager_remove_all (gboolean rm_backup_and_log);
void tracker_db_manager_optimize (void);
const gchar *tracker_db_manager_get_file (TrackerDB db);
diff --git a/src/tracker-store/tracker-main.c b/src/tracker-store/tracker-main.c
index fff0628..d7750b6 100644
--- a/src/tracker-store/tracker-main.c
+++ b/src/tracker-store/tracker-main.c
@@ -491,7 +491,7 @@ shutdown_directories (void)
/* If we are reindexing, just remove the databases */
if (private->reindex_on_shutdown) {
- tracker_db_manager_remove_all ();
+ tracker_db_manager_remove_all (FALSE);
}
}
diff --git a/src/tracker-utils/tracker-processes.c b/src/tracker-utils/tracker-processes.c
index c1ed7e0..d88c655 100644
--- a/src/tracker-utils/tracker-processes.c
+++ b/src/tracker-utils/tracker-processes.c
@@ -37,7 +37,7 @@
static gboolean should_kill;
static gboolean should_terminate;
-static gboolean hard_reset;
+static gboolean hard_reset, soft_reset;
static GOptionEntry entries[] = {
{ "kill", 'k', 0, G_OPTION_ARG_NONE, &should_kill,
@@ -47,6 +47,9 @@ 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 },
@@ -235,7 +238,7 @@ main (int argc, char **argv)
g_slist_foreach (pids, (GFunc) g_free, NULL);
g_slist_free (pids);
- if (hard_reset) {
+ if (hard_reset || soft_reset) {
guint log_handler_id;
/* Set log handler for library messages */
@@ -251,7 +254,7 @@ main (int argc, char **argv)
return EXIT_FAILURE;
}
- tracker_db_manager_remove_all ();
+ tracker_db_manager_remove_all (hard_reset);
tracker_db_manager_shutdown ();
/* Unset log handler */
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]