Quellcode durchsuchen

fix(mobile): bak files

charlie vor 3 Jahren
Ursprung
Commit
005719cb06

+ 2 - 2
src/electron/electron/backup_file.cljs

@@ -25,11 +25,11 @@
   (get-backup-dir* repo relative-path version-file-dir))
 
 (defn- truncate-old-versioned-files!
-  "reserve the latest 3 version files"
+  "reserve the latest 6 version files"
   [dir]
   (let [files (fs/readdirSync dir (clj->js {:withFileTypes true}))
         files (mapv #(.-name %) files)
-        old-versioned-files (drop 3 (reverse (sort files)))]
+        old-versioned-files (drop 6 (reverse (sort files)))]
     (doseq [file old-versioned-files]
       (fs-extra/removeSync (path/join dir file)))))
 

+ 7 - 7
src/main/frontend/fs/capacitor_fs.cljs

@@ -116,11 +116,11 @@
     (str repo-dir backup-dir "/" relative-path)))
 
 (defn- truncate-old-versioned-files!
-  "reserve the latest 3 version files"
+  "reserve the latest 6 version files"
   [dir]
   (p/let [files (readdir dir)
           files (js->clj files :keywordize-keys true)
-          old-versioned-files (drop 3 (reverse (sort-by :mtime files)))]
+          old-versioned-files (drop 6 (reverse (sort-by :mtime files)))]
     (mapv (fn [file]
             (.deleteFile Filesystem (clj->js {:path (js/encodeURI (:uri file))})))
           old-versioned-files)))
@@ -144,14 +144,14 @@
         backup-dir-parent (string/replace backup-dir-parent repo-dir "")
         backup-dir-name (util/node-path.name file-path)
         file-extname (util/node-path.extname file-path)
-        new-path (util/safe-path-join
-                  backup-root backup-dir-parent backup-dir-name
-                  (str (string/replace (.toISOString (js/Date.)) ":" "_") "." (mobile-util/platform) file-extname))]
+        file-root (util/safe-path-join backup-root backup-dir-parent backup-dir-name)
+        file-path (util/safe-path-join file-root
+                                       (str (string/replace (.toISOString (js/Date.)) ":" "_") "." (mobile-util/platform) file-extname))]
     (.writeFile Filesystem (clj->js {:data      content
-                                     :path      (js/encodeURI new-path)
+                                     :path      (js/encodeURI file-path)
                                      :encoding  (.-UTF8 Encoding)
                                      :recursive true}))
-    (truncate-old-versioned-files! backup-dir)))
+    (truncate-old-versioned-files! (js/encodeURI file-root))))
 
 (defn- write-file-impl!
   [_this repo _dir path content {:keys [ok-handler error-handler old-content skip-compare?]} stat]

+ 7 - 4
src/main/frontend/fs/watcher_handler.cljs

@@ -37,10 +37,13 @@
   [repo path content db-content mtime backup?]
   (p/let [
           ;; save the previous content in a versioned bak file to avoid data overwritten.
-          _ (when-let [repo-dir (and backup? (config/get-local-dir repo))]
-              (if (util/electron?)
-                (ipc/ipc "backupDbFile"  repo-dir path db-content content)
-                (capacitor-fs/backup-file-handle-changed! repo-dir path db-content)))
+          _ (-> (when-let [repo-dir (and backup? (config/get-local-dir repo))]
+                  (prn "⚠️Bak File: " path)
+                  (if (util/electron?)
+                    (ipc/ipc "backupDbFile" repo-dir path db-content content)
+                    (capacitor-fs/backup-file-handle-changed! repo-dir path db-content)))
+                (p/catch #(js/console.error "❌ Bak Error: " path %)))
+
           _ (file-handler/alter-file repo path content {:re-render-root? true
                                                         :from-disk? true})]
     (set-missing-block-ids! content)