mirror of https://github.com/logseq/logseq
fix: readdir with path-only? option
parent
127a4d1613
commit
91ceae48e4
|
@ -53,8 +53,12 @@
|
|||
(protocol/mkdir-recur! (get-fs dir) dir))
|
||||
|
||||
(defn readdir
|
||||
[dir]
|
||||
(protocol/readdir (get-fs dir) dir))
|
||||
[dir & {:keys [path-only?]}]
|
||||
(p/let [result (protocol/readdir (get-fs dir) dir)
|
||||
result (bean/->clj result)]
|
||||
(if (and path-only? (map? (first result)))
|
||||
(map :uri result)
|
||||
result)))
|
||||
|
||||
(defn unlink!
|
||||
"Should move the path to logseq/recycle instead of deleting it."
|
||||
|
|
|
@ -125,12 +125,14 @@
|
|||
(defn- truncate-old-versioned-files!
|
||||
"reserve the latest 6 version files"
|
||||
[dir]
|
||||
(p/let [files (readdir dir)
|
||||
files (js->clj files :keywordize-keys true)
|
||||
old-versioned-files (drop 6 (reverse (sort-by :mtime files)))]
|
||||
(mapv (fn [file]
|
||||
(.deleteFile Filesystem (clj->js {:path (:uri file)})))
|
||||
old-versioned-files)))
|
||||
(->
|
||||
(p/let [files (readdir dir)
|
||||
files (js->clj files :keywordize-keys true)
|
||||
old-versioned-files (drop 6 (reverse (sort-by :mtime files)))]
|
||||
(mapv (fn [file]
|
||||
(.deleteFile Filesystem (clj->js {:path (:uri file)})))
|
||||
old-versioned-files))
|
||||
(p/catch (fn [_]))))
|
||||
|
||||
;; TODO: move this to FS protocol
|
||||
(defn backup-file
|
||||
|
@ -139,13 +141,14 @@
|
|||
:version-file-dir = `version-file-dir`"
|
||||
[repo dir path content]
|
||||
{:pre [(contains? #{:backup-dir :version-file-dir} dir)]}
|
||||
(let [ext (util/get-file-ext path)
|
||||
(let [repo-dir (config/get-local-dir repo)
|
||||
ext (util/get-file-ext path)
|
||||
dir (case dir
|
||||
:backup-dir (get-backup-dir repo path backup-dir ext)
|
||||
:version-file-dir (get-backup-dir repo path version-file-dir ext))
|
||||
new-path (util/safe-path-join dir (str (string/replace (.toISOString (js/Date.)) ":" "_") "." ext))]
|
||||
:backup-dir (get-backup-dir repo-dir path backup-dir ext)
|
||||
:version-file-dir (get-backup-dir repo-dir path version-file-dir ext))
|
||||
new-path (util/safe-path-join dir (str (string/replace (.toISOString (js/Date.)) ":" "_") "." (mobile-util/platform) "." ext))]
|
||||
(<write-file-with-utf8 new-path content)
|
||||
(truncate-old-versioned-files! backup-dir)))
|
||||
(truncate-old-versioned-files! dir)))
|
||||
|
||||
(defn backup-file-handle-changed!
|
||||
[repo-dir file-path content]
|
||||
|
|
|
@ -131,17 +131,9 @@
|
|||
(#(js->clj % :keywordize-keys true))
|
||||
((juxt :dir :name))
|
||||
(apply path/join base-path))
|
||||
version-file-paths* (<! (p->c (fs/readdir version-files-dir)))]
|
||||
(when-not (instance? ExceptionInfo version-file-paths*)
|
||||
(let [version-file-paths
|
||||
(filterv
|
||||
;; filter dir
|
||||
(fn [dir-or-file]
|
||||
(-> (path/parse dir-or-file)
|
||||
(js->clj :keywordize-keys true)
|
||||
:ext
|
||||
seq))
|
||||
(js->clj (<! (p->c (fs/readdir version-files-dir)))))]
|
||||
version-file-paths (<! (p->c (fs/readdir version-files-dir :path-only? true)))]
|
||||
(when-not (instance? ExceptionInfo version-file-paths)
|
||||
(when (seq version-file-paths)
|
||||
(mapv
|
||||
(fn [path]
|
||||
(let [create-time
|
||||
|
|
Loading…
Reference in New Issue