static void backup (const gchar *filename, GCancellable *cancellable) { gchar *command; gchar *quotedfname; gboolean use_xz; g_return_if_fail (filename && *filename); if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Shutting down Evolution"); /* FIXME Will the versioned setting always work? */ run_cmd (EVOLUTION " --quit"); run_cmd ("rm $DATADIR/.running"); if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Backing Evolution accounts and settings"); 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 DCONF_DUMP_FILE_EVO, e_get_user_data_dir (), EVOUSERDATADIR_MAGIC); write_dir_file (); if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Backing Evolution data (Mails, Contacts, Calendar, Tasks, Memos)"); quotedfname = g_shell_quote (filename); use_xz = get_filename_is_xz (filename); command = g_strdup_printf ( "cd $HOME && tar chf - $STRIPDATADIR " "$STRIPCONFIGDIR " EVOLUTION_DIR_FILE " | " "%s > %s", use_xz ? "xz -z" : "gzip", quotedfname); run_cmd (command); g_free (command); g_free (quotedfname); run_cmd ("rm $HOME/" EVOLUTION_DIR_FILE); txt = _("Back up complete"); if (restart_arg) { if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Restarting Evolution"); run_evolution_no_wait (); } }
static void backup (const gchar *filename, GCancellable *cancellable) { gchar *command; gchar *quotedfname; g_return_if_fail (filename && *filename); quotedfname = g_shell_quote (filename); if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Shutting down Evolution"); /* FIXME Will the versioned setting always work? */ run_cmd (EVOLUTION " --quit"); run_cmd ("rm $DATADIR/.running"); if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Backing Evolution accounts and settings"); run_cmd ("gconftool-2 --dump " GCONF_DIR " > " EVOLUTION_DIR GCONF_DUMP_FILE); replace_in_file ( EVOLUTION_DIR GCONF_DUMP_FILE, e_get_user_data_dir (), EVOUSERDATADIR_MAGIC); write_dir_file (); if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Backing Evolution data (Mails, Contacts, Calendar, Tasks, Memos)"); /* FIXME stay on this file system ,other options?" */ /* FIXME compression type?" */ /* FIXME date/time stamp?" */ /* FIXME backup location?" */ command = g_strdup_printf ( "cd $HOME && tar chf - $STRIPDATADIR " "$STRIPCONFIGDIR .camel_certs " EVOLUTION_DIR_FILE " | " "gzip > %s", quotedfname); run_cmd (command); g_free (command); g_free (quotedfname); run_cmd ("rm $HOME/" EVOLUTION_DIR_FILE); txt = _("Back up complete"); if (restart_arg) { if (g_cancellable_is_cancelled (cancellable)) return; txt = _("Restarting Evolution"); run_evolution_no_wait (); } }
void collect_and_sort_names (void) { struct name *name; struct name *next_name; int counter; struct stat stat_info; name_gather (); if (listed_incremental_option) read_directory_file (); if (!name_list_head) add_name ("."); for (name = name_list_head; name; name = next_name) { next_name = name->next; if (name->match_found || name->dir_contents) continue; if (name->is_wildcard) /* FIXME: just skip wildcards for now */ continue; if (name->change_dir) if (chdir (name->change_dir) < 0) { ERROR ((0, errno, _("Cannot chdir to %s"), name->change_dir)); continue; } if ( #ifdef AIX statx (name->name, &stat_info, STATSIZE, STX_HIDDEN | STX_LINK) #else lstat (name->name, &stat_info) < 0 #endif ) { ERROR ((0, errno, _("Cannot stat %s"), name->name)); continue; } if (S_ISDIR (stat_info.st_mode)) { name->match_found = true; add_hierarchy_to_namelist (name->name, stat_info.st_dev); } } counter = 0; for (name = name_list_head; name; name = name->next) counter++; name_list_head = (struct name *) merge_sort ((voidstar) name_list_head, counter, (char *) (&(name_list_head->next)) - (char *) name_list_head, compare_names); for (name = name_list_head; name; name = name->next) name->match_found = false; if (listed_incremental_option) write_dir_file (); }
void collect_and_sort_names (void) { struct name *name; struct name *next_name; int num_names; struct stat statbuf; name_gather (); if (listed_incremental_option) read_directory_file (); if (!namelist) addname ("."); for (name = namelist; name; name = next_name) { next_name = name->next; if (name->found || name->dir_contents) continue; if (name->regexp) /* FIXME: just skip regexps for now */ continue; if (name->change_dir) if (chdir (name->change_dir) < 0) { ERROR ((0, errno, _("Cannot chdir to %s"), name->change_dir)); continue; } if ( #ifdef AIX statx (name->name, &statbuf, STATSIZE, STX_HIDDEN | STX_LINK) #else lstat (name->name, &statbuf) < 0 #endif ) { ERROR ((0, errno, _("Cannot stat %s"), name->name)); continue; } if (S_ISDIR (statbuf.st_mode)) { name->found = 1; add_hierarchy_to_namelist (name->name, statbuf.st_dev); } } num_names = 0; for (name = namelist; name; name = name->next) num_names++; namelist = (struct name *) merge_sort ((voidstar) namelist, num_names, (char *) (&(namelist->next)) - (char *) namelist, compare_names); for (name = namelist; name; name = name->next) name->found = 0; if (listed_incremental_option) write_dir_file (); }