static void initialize_miners_data (TrackerMinerManager *manager) { GFile *file; const gchar *miners_dir, *miners_dir_disabled; miners_dir_disabled = g_getenv ("TRACKER_MINERS_DIR_DISABLED"); if (G_UNLIKELY (miners_dir_disabled != NULL)) { miners_dir = TRACKER_MINERS_DIR; g_message ("Crawling miners found on DBus not from .desktop files (set in env)"); load_running_miners_only (manager); return; } /* Go through service files */ miners_dir = g_getenv ("TRACKER_MINERS_DIR"); if (G_LIKELY (miners_dir == NULL)) { miners_dir = TRACKER_MINERS_DIR; } else { g_message ("Crawling miners in '%s' (set in env)", miners_dir); } file = g_file_new_for_path (miners_dir); directory_foreach (file, ".service", (GFunc) check_file, manager); g_object_unref (file); }
static void initialize_miners_data (TrackerMinerManager *manager) { GFile *file; const gchar *miners_dir; /* Go through service files */ miners_dir = g_getenv ("TRACKER_MINERS_DIR"); if (G_LIKELY (miners_dir == NULL)) { miners_dir = TRACKER_MINERS_DIR; } else { g_message ("Crawling miners in '%s' (set in env)", miners_dir); } file = g_file_new_for_path (miners_dir); directory_foreach (file, ".desktop", (GFunc) check_file, manager); g_object_unref (file); }
static gint reset_run (void) { GError *error = NULL; if (hard_reset && soft_reset) { g_printerr ("%s\n", _("You can not use the --hard and --soft arguments together")); return EXIT_FAILURE; } /* KILL processes first... */ if (hard_reset || soft_reset) { tracker_process_stop (TRACKER_PROCESS_TYPE_NONE, TRACKER_PROCESS_TYPE_ALL); } if (hard_reset || soft_reset) { guint log_handler_id; #ifndef DISABLE_JOURNAL gchar *rotate_to; TrackerDBConfig *db_config; gsize chunk_size; gint chunk_size_mb; #endif /* DISABLE_JOURNAL */ /* Set log handler for library messages */ log_handler_id = g_log_set_handler (NULL, G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL, log_handler, NULL); g_log_set_default_handler (log_handler, NULL); #ifndef DISABLE_JOURNAL db_config = tracker_db_config_new (); chunk_size_mb = tracker_db_config_get_journal_chunk_size (db_config); chunk_size = (gsize) ((gsize) chunk_size_mb * (gsize) 1024 * (gsize) 1024); rotate_to = tracker_db_config_get_journal_rotate_destination (db_config); /* This call is needed to set the journal's filename */ tracker_db_journal_set_rotating ((chunk_size_mb != -1), chunk_size, rotate_to); g_free (rotate_to); g_object_unref (db_config); #endif /* DISABLE_JOURNAL */ /* Clean up (select_cache_size and update_cache_size don't matter here) */ if (!tracker_db_manager_init (TRACKER_DB_MANAGER_REMOVE_ALL, NULL, FALSE, FALSE, 100, 100, NULL, NULL, NULL, &error)) { g_message ("Error initializing database: %s", error->message); g_free (error); return EXIT_FAILURE; } #ifndef DISABLE_JOURNAL tracker_db_journal_init (NULL, FALSE, NULL); #endif /* DISABLE_JOURNAL */ tracker_db_manager_remove_all (hard_reset); tracker_db_manager_shutdown (); #ifndef DISABLE_JOURNAL tracker_db_journal_shutdown (NULL); #endif /* DISABLE_JOURNAL */ /* Unset log handler */ g_log_remove_handler (NULL, log_handler_id); if (!remove_config) { return EXIT_SUCCESS; } } if (remove_config) { GFile *file; const gchar *home_conf_dir; gchar *path; GSList *all, *l; /* Check the default XDG_DATA_HOME location */ home_conf_dir = g_getenv ("XDG_CONFIG_HOME"); if (home_conf_dir && tracker_path_has_write_access_or_was_created (home_conf_dir)) { path = g_build_path (G_DIR_SEPARATOR_S, home_conf_dir, "tracker", NULL); } else { home_conf_dir = g_getenv ("HOME"); if (!home_conf_dir || !tracker_path_has_write_access_or_was_created (home_conf_dir)) { home_conf_dir = g_get_home_dir (); } path = g_build_path (G_DIR_SEPARATOR_S, home_conf_dir, ".config", "tracker", NULL); } file = g_file_new_for_path (path); g_free (path); g_print ("%s\n", _("Removing configuration files…")); directory_foreach (file, ".cfg", (GFunc) delete_file, NULL); g_object_unref (file); g_print ("%s\n", _("Resetting existing configuration…")); all = tracker_gsettings_get_all (NULL); if (!all) { return EXIT_FAILURE; } for (l = all; l; l = l->next) { ComponentGSettings *c = l->data; gchar **keys, **p; if (!c) { continue; } g_print (" %s\n", c->name); keys = g_settings_list_keys (c->settings); for (p = keys; p && *p; p++) { g_print (" %s\n", *p); g_settings_reset (c->settings, *p); } if (keys) { g_strfreev (keys); } g_settings_apply (c->settings); } g_settings_sync (); tracker_gsettings_free (all); return EXIT_SUCCESS; } /* All known options have their own exit points */ g_warn_if_reached (); return EXIT_FAILURE; }