fix: readdir with path-only? option

pull/6968/head
Tienson Qin 2022-10-12 15:28:56 +08:00
parent 127a4d1613
commit 91ceae48e4
3 changed files with 23 additions and 24 deletions

View File

@ -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."

View File

@ -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]

View File

@ -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