[shotwell] Do not use Posix.system()
- From: Jens Georg <jensgeorg src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [shotwell] Do not use Posix.system()
- Date: Sat, 16 Apr 2016 08:17:23 +0000 (UTC)
commit de1aae80b99a2e8da5260067f729d986be339c29
Author: Jens Georg <mail jensge org>
Date: Fri Apr 15 23:19:14 2016 +0200
Do not use Posix.system()
src/db/DatabaseTable.vala | 13 ++++++++++---
src/main.vala | 14 +++++++++++---
2 files changed, 21 insertions(+), 6 deletions(-)
---
diff --git a/src/db/DatabaseTable.vala b/src/db/DatabaseTable.vala
index 235ac06..a315fab 100644
--- a/src/db/DatabaseTable.vala
+++ b/src/db/DatabaseTable.vala
@@ -69,10 +69,17 @@ public abstract class DatabaseTable {
db = null;
string backup_path = filename + ".bak";
- string cmdline = "cp " + backup_path + " " + filename;
- Posix.system(cmdline);
- prepare_db(filename);
+ try {
+ File src = File.new_for_commandline_arg(backup_path);
+ File dest = File.new_for_commandline_arg(filename);
+ src.copy(dest,
+ FileCopyFlags.OVERWRITE |
+ FileCopyFlags.ALL_METADATA);
+ prepare_db(filename);
+ } catch (Error error) {
+ AppWindow.panic(_("Unable to restore photo database %s").printf(error.message));
+ }
}
// disable synchronized commits for performance reasons ... this is not vital, hence we
diff --git a/src/main.vala b/src/main.vala
index 6a705a7..5548455 100644
--- a/src/main.vala
+++ b/src/main.vala
@@ -433,9 +433,17 @@ void main(string[] args) {
if (is_string_empty(filename) && !was_already_running) {
string orig_path = AppDirs.get_data_subdir("data").get_child("photo.db").get_path();
string backup_path = orig_path + ".bak";
- string cmdline = "cp " + orig_path + " " + backup_path;
- Posix.system(cmdline);
- Posix.system("sync");
+ try {
+ File src = File.new_for_commandline_arg(orig_path);
+ File dest = File.new_for_commandline_arg(backup_path);
+ src.copy(dest,
+ FileCopyFlags.OVERWRITE |
+ FileCopyFlags.ALL_METADATA);
+ } catch(Error error) {
+ warning("Failed to create backup file of database: %s",
+ error.message);
+ }
+ Posix.sync();
}
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]