From 94daae3dba8e86e88f69320bc82795fe660ec9cd Mon Sep 17 00:00:00 2001 From: Milan Crha Date: Fri, 15 Jun 2012 09:04:08 +0200 Subject: Remove the last remaining usage of GConf --- modules/backup-restore/evolution-backup-tool.c | 61 +++++++++++++++++++++----- 1 file changed, 50 insertions(+), 11 deletions(-) (limited to 'modules/backup-restore') diff --git a/modules/backup-restore/evolution-backup-tool.c b/modules/backup-restore/evolution-backup-tool.c index 7d1caaf948..d09efa3628 100644 --- a/modules/backup-restore/evolution-backup-tool.c +++ b/modules/backup-restore/evolution-backup-tool.c @@ -53,8 +53,14 @@ #define EVOLUTION "evolution" #define EVOLUTION_DIR "$DATADIR/" #define EVOLUTION_DIR_FILE EVOLUTION ".dir" -#define GCONF_DUMP_FILE "backup-restore-gconf.xml" -#define GCONF_DIR "/apps/evolution" + +#define ANCIENT_GCONF_DUMP_FILE "backup-restore-gconf.xml" + +#define DCONF_DUMP_FILE_EDS "backup-restore-dconf-eds.ini" +#define DCONF_DUMP_FILE_EVO "backup-restore-dconf-evo.ini" + +#define DCONF_PATH_EDS "/org/gnome/evolution-data-server/" +#define DCONF_PATH_EVO "/org/gnome/evolution/" static gboolean backup_op = FALSE; static gchar *bk_file = NULL; @@ -313,10 +319,15 @@ backup (const gchar *filename, return; txt = _("Backing Evolution accounts and settings"); - run_cmd ("gconftool-2 --dump " GCONF_DIR " > " EVOLUTION_DIR GCONF_DUMP_FILE); + run_cmd ("dconf dump " DCONF_PATH_EDS " >" EVOLUTION_DIR DCONF_DUMP_FILE_EDS); + run_cmd ("dconf dump " DCONF_PATH_EVO " >" EVOLUTION_DIR DCONF_DUMP_FILE_EVO); + + replace_in_file ( + EVOLUTION_DIR DCONF_DUMP_FILE_EDS, + e_get_user_data_dir (), EVOUSERDATADIR_MAGIC); replace_in_file ( - EVOLUTION_DIR GCONF_DUMP_FILE, + EVOLUTION_DIR DCONF_DUMP_FILE_EVO, e_get_user_data_dir (), EVOUSERDATADIR_MAGIC); write_dir_file (); @@ -514,17 +525,35 @@ restore (const gchar *filename, if (is_new_format) { /* new format has it in DATADIR... */ - replace_in_file ( - EVOLUTION_DIR GCONF_DUMP_FILE, - EVOUSERDATADIR_MAGIC, e_get_user_data_dir ()); - run_cmd ("gconftool-2 --load " EVOLUTION_DIR GCONF_DUMP_FILE); - run_cmd ("rm " EVOLUTION_DIR GCONF_DUMP_FILE); + GString *file = replace_variables (EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); + if (file && g_file_test (file->str, G_FILE_TEST_EXISTS)) { + /* ancient backup */ + replace_in_file ( + EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE, + EVOUSERDATADIR_MAGIC, e_get_user_data_dir ()); + run_cmd ("gconftool-2 --load " EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); + run_cmd ("rm " EVOLUTION_DIR ANCIENT_GCONF_DUMP_FILE); + } else { + replace_in_file ( + EVOLUTION_DIR DCONF_DUMP_FILE_EDS, + EVOUSERDATADIR_MAGIC, e_get_user_data_dir ()); + run_cmd ("cat " EVOLUTION_DIR DCONF_DUMP_FILE_EDS " | dconf load " DCONF_PATH_EDS); + run_cmd ("rm " EVOLUTION_DIR DCONF_DUMP_FILE_EDS); + + replace_in_file ( + EVOLUTION_DIR DCONF_DUMP_FILE_EVO, + EVOUSERDATADIR_MAGIC, e_get_user_data_dir ()); + run_cmd ("cat " EVOLUTION_DIR DCONF_DUMP_FILE_EVO " | dconf load " DCONF_PATH_EVO); + run_cmd ("rm " EVOLUTION_DIR DCONF_DUMP_FILE_EVO); + } + + g_string_free (file, TRUE); } else { gchar *gconf_dump_file; /* ... old format in ~/.evolution */ gconf_dump_file = g_build_filename ( - "$HOME", ".evolution", GCONF_DUMP_FILE, NULL); + "$HOME", ".evolution", ANCIENT_GCONF_DUMP_FILE, NULL); replace_in_file ( gconf_dump_file, @@ -635,9 +664,19 @@ check (const gchar *filename, command = g_strdup_printf ( "tar ztf %s | grep -e \"^\\.evolution/%s$\"", - quotedfname, GCONF_DUMP_FILE); + quotedfname, ANCIENT_GCONF_DUMP_FILE); result = system (command); g_free (command); + + if (result != 0) { + /* maybe it's an ancient backup */ + command = g_strdup_printf ( + "tar ztf %s | grep -e \"^\\.evolution/%s$\"", + quotedfname, ANCIENT_GCONF_DUMP_FILE); + result = system (command); + g_free (command); + } + g_free (quotedfname); g_message ("Third result %d", result); -- cgit v1.2.3