[tracker-miners/wip/carlosg/parallel-installable: 23/27] miners: Store data in ~/.cache/tracker3
- From: Carlos Garnacho <carlosg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [tracker-miners/wip/carlosg/parallel-installable: 23/27] miners: Store data in ~/.cache/tracker3
- Date: Sat, 14 Mar 2020 22:17:08 +0000 (UTC)
commit a0351ab068e6f1d109a3c3e9b4f5375ce50344b3
Author: Carlos Garnacho <carlosg gnome org>
Date: Sun Mar 8 11:57:45 2020 +0100
miners: Store data in ~/.cache/tracker3
And make both RSS/files miners keep their data separated (intended
as per 3.0 design, but also multiple writers on a same DB is a recipe
for disaster).
As that data is separated now, and --hard vs --soft makes no difference
in "tracker reset" CLI command, make those be --rss/--files to delete
specific miner data.
data/default.rule | 2 +-
src/miners/fs/tracker-main.c | 2 +-
src/miners/fs/tracker-miner-files.c | 2 +-
src/miners/rss/tracker-main.c | 7 ++--
src/tracker/tracker-reset.c | 66 +++++++++++++------------------------
src/tracker/tracker-status.c | 4 +--
6 files changed, 32 insertions(+), 51 deletions(-)
---
diff --git a/data/default.rule b/data/default.rule
index dd6961cf6..3500cb306 100644
--- a/data/default.rule
+++ b/data/default.rule
@@ -14,7 +14,7 @@
#
# Location for the Tracker database (not optional)
-CacheLocation=$XDG_CACHE_HOME/tracker
+CacheLocation=$XDG_CACHE_HOME/tracker3
# Name of the ontology to use, must be one located in
# $(sharedir)/tracker/ontologies
diff --git a/src/miners/fs/tracker-main.c b/src/miners/fs/tracker-main.c
index 7a6f9ff8a..a7449b187 100644
--- a/src/miners/fs/tracker-main.c
+++ b/src/miners/fs/tracker-main.c
@@ -157,7 +157,7 @@ get_cache_dir (TrackerDomainOntology *domain_ontology)
GFile *cache;
cache = tracker_domain_ontology_get_cache (domain_ontology);
- return g_object_ref (cache);
+ return g_file_get_child (cache, "files");
}
static void
diff --git a/src/miners/fs/tracker-miner-files.c b/src/miners/fs/tracker-miner-files.c
index 2a75a3de2..f25e7a64e 100644
--- a/src/miners/fs/tracker-miner-files.c
+++ b/src/miners/fs/tracker-miner-files.c
@@ -1765,7 +1765,7 @@ get_cache_dir (TrackerMinerFiles *mf)
GFile *cache;
cache = tracker_domain_ontology_get_cache (mf->private->domain_ontology);
- return g_object_ref (cache);
+ return g_file_get_child (cache, "files");
}
diff --git a/src/miners/rss/tracker-main.c b/src/miners/rss/tracker-main.c
index e55d53ab9..b0e45346a 100644
--- a/src/miners/rss/tracker-main.c
+++ b/src/miners/rss/tracker-main.c
@@ -97,14 +97,17 @@ setup_connection_and_endpoint (TrackerDomainOntology *domain,
TrackerEndpointDBus **endpoint,
GError **error)
{
- GFile *store;
+ GFile *cache, *store;
- store = tracker_domain_ontology_get_cache (domain);
+ cache = tracker_domain_ontology_get_cache (domain);
+ store = g_file_get_child (cache, "rss");
*sparql_conn = tracker_sparql_connection_new (get_fts_connection_flags (),
store,
NULL,
NULL,
error);
+ g_object_unref (store);
+
if (!*sparql_conn)
return FALSE;
diff --git a/src/tracker/tracker-reset.c b/src/tracker/tracker-reset.c
index cd56b225f..6f29b65cd 100644
--- a/src/tracker/tracker-reset.c
+++ b/src/tracker/tracker-reset.c
@@ -36,23 +36,23 @@
#include "tracker-color.h"
#include "tracker-miner-manager.h"
-static gboolean hard_reset;
-static gboolean soft_reset;
+static gboolean files = FALSE;
+static gboolean rss = FALSE;
static gboolean remove_config;
static gchar *filename = NULL;
#define RESET_OPTIONS_ENABLED() \
- (hard_reset || \
- soft_reset || \
+ (files || \
+ rss || \
remove_config || \
filename)
static GOptionEntry entries[] = {
- { "hard", 'r', 0, G_OPTION_ARG_NONE, &hard_reset,
- N_("Kill all Tracker processes and remove all databases"),
+ { "filesystem", 's', 0, G_OPTION_ARG_NONE, &files,
+ N_("Remove filesystem indexer database"),
NULL },
- { "soft", 'e', 0, G_OPTION_ARG_NONE, &soft_reset,
- N_("Same as --hard but the backup & journal are restored after restart"),
+ { "rss", 'r', 0, G_OPTION_ARG_NONE, &rss,
+ N_("Remove RSS indexer database"),
NULL },
{ "config", 'c', 0, G_OPTION_ARG_NONE, &remove_config,
N_("Remove all configuration files so they are re-generated on next start"),
@@ -185,39 +185,6 @@ delete_databases (GFile *dir)
static gint
reset_run (void)
{
- if (hard_reset && soft_reset) {
- g_printerr ("%s\n",
- /* TRANSLATORS: --hard and --soft are commandline arguments */
- _("You can not use the --hard and --soft arguments together"));
- return EXIT_FAILURE;
- }
-
- if (hard_reset || soft_reset) {
- gchar response[100] = { 0 };
-
- g_print (CRIT_BEGIN "%s" CRIT_END "\n%s\n\n%s %s: ",
- _("CAUTION: This process may irreversibly delete data."),
- _("Although most content indexed by Tracker can "
- "be safely reindexed, it can’t be assured that "
- "this is the case for all data. Be aware that "
- "you may be incurring in a data loss situation, "
- "proceed at your own risk."),
- _("Are you sure you want to proceed?"),
- /* TRANSLATORS: This is to be displayed on command line output */
- _("[y|N]"));
-
- fgets (response, 100, stdin);
- response[strlen (response) - 1] = '\0';
-
- /* TRANSLATORS: this is our test for a [y|N] question in the command line.
- * A partial or full match will be considered an affirmative answer,
- * it is intentionally lowercase, so please keep it like this.
- */
- if (!response[0] || !g_str_has_prefix (_("yes"), response)) {
- return EXIT_FAILURE;
- }
- }
-
if (filename) {
GFile *file;
gint retval;
@@ -229,20 +196,31 @@ reset_run (void)
}
/* KILL processes first... */
- if (hard_reset || soft_reset) {
+ if (files || rss) {
+ /* FIXME: we might selectively kill affected miners */
tracker_process_stop (TRACKER_PROCESS_TYPE_NONE, TRACKER_PROCESS_TYPE_MINERS);
}
- if (hard_reset || soft_reset) {
+ if (files) {
GFile *cache_location;
gchar *dir;
- dir = g_build_filename (g_get_user_cache_dir (), "tracker", NULL);
+ dir = g_build_filename (g_get_user_cache_dir (), "tracker3", "files", NULL);
cache_location = g_file_new_for_path (dir);
+ delete_databases (cache_location);
+ g_object_unref (cache_location);
g_free (dir);
+ }
+ if (rss) {
+ GFile *cache_location;
+ gchar *dir;
+
+ dir = g_build_filename (g_get_user_cache_dir (), "tracker3", "rss", NULL);
+ cache_location = g_file_new_for_path (dir);
delete_databases (cache_location);
g_object_unref (cache_location);
+ g_free (dir);
}
if (remove_config) {
diff --git a/src/tracker/tracker-status.c b/src/tracker/tracker-status.c
index 50dc31208..26ef4a24e 100644
--- a/src/tracker/tracker-status.c
+++ b/src/tracker/tracker-status.c
@@ -177,7 +177,7 @@ collect_debug (void)
gchar *data_dir;
gchar *str;
- data_dir = g_build_filename (g_get_user_cache_dir (), "tracker", NULL);
+ data_dir = g_build_filename (g_get_user_cache_dir (), "tracker3", NULL);
/* 1. Package details, e.g. version. */
g_print ("[Package Details]\n");
@@ -544,7 +544,7 @@ get_no_args (void)
g_print ("\n");
/* How much space is left? */
- data_dir = g_build_filename (g_get_user_cache_dir (), "tracker", NULL);
+ data_dir = g_build_filename (g_get_user_cache_dir (), "tracker3", NULL);
remaining_bytes = tracker_file_system_get_remaining_space (data_dir);
str = g_format_size (remaining_bytes);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]