Check for failed backups
authorRicardo Mones <ricardo@mones.org>
Thu, 26 Jul 2018 20:23:27 +0000 (22:23 +0200)
committerRicardo Mones <ricardo@mones.org>
Thu, 26 Jul 2018 20:23:27 +0000 (22:23 +0200)
Create also a backup of menurc when saving

clawsker

index 97cefa2..8f6fdf8 100755 (executable)
--- a/clawsker
+++ b/clawsker
@@ -2540,6 +2540,18 @@ sub save_resource {
     close (RCF);
 }
 
+sub backup_resource {
+    my $rc = shift;
+    my $rcbak = "$rc.backup";
+    do {
+        my $emsg = _("Unable to create backup file '{name}'\n", name => $rcbak);
+        log_message ($emsg);
+        error_dialog ($emsg);
+        return FALSE;
+    } unless rename ($rc, $rcbak);
+    return TRUE;
+}
+
 # specific loaders
 sub load_menurc {
     my $rc = shift;
@@ -2643,8 +2655,7 @@ sub save_rc_preferences {
     log_message ("Saving preferences to $rc\n");
     return FALSE unless check_rc_file ($rc);
     return FALSE unless check_claws_not_running ();
-    my $rcbak = "$rc.backup";
-    rename ($rc, $rcbak);
+    return FALSE unless backup_resource ($rc);
     foreach (keys %PREFS) {
         if (defined $HPVALUE{$_}) {
             $CONFIGDATA->{'Common'}{$_} = $HPVALUE{$_}[VALUE];
@@ -2666,8 +2677,7 @@ sub save_ac_preferences {
     log_message ("Saving account preferences to $rc\n");
     return FALSE unless check_rc_file ($rc);
     return FALSE unless check_claws_not_running ();
-    my $rcbak = "$rc.backup";
-    rename ($rc, $rcbak);
+    return FALSE unless backup_resource ($rc);
     foreach my $asect (keys %$ACCOUNTDATA) {
         if ($asect =~ /^Account: (\d+)$/) {
             foreach (keys %{$ACCOUNTDATA->{$asect}}) {
@@ -2686,6 +2696,7 @@ sub save_hk_preferences {
     log_message ("Saving hotkey preferences to $rc\n");
     return FALSE unless check_rc_file ($rc);
     return FALSE unless check_claws_not_running ();
+    return FALSE unless backup_resource ($rc);
     save_menurc ($rc, $HOTKEYS);
     return TRUE;
 }