diff --git a/deps/common/src/logseq/common/path.cljs b/deps/common/src/logseq/common/path.cljs index 4420fe78a..6b3d67b66 100644 --- a/deps/common/src/logseq/common/path.cljs +++ b/deps/common/src/logseq/common/path.cljs @@ -1,9 +1,7 @@ (ns logseq.common.path "Path manipulation functions, use '/' sep on all platforms. Also handles URL paths." - (:require [clojure.string :as string] - ["path" :as path] - ["/frontend/utils" :as utils])) + (:require [clojure.string :as string])) (defn- safe-decode-uri-component [uri] @@ -239,8 +237,8 @@ (if is-url? (safe-decode-uri-component (string/replace (subs sub-path (count base-path)) #"^/+", "")) (string/replace (subs sub-path (count base-path)) #"^/+", "")) - ;; append as many .. - ;; NOTE: buggy impl + ;; append as many .. + ;; NOTE: This is a buggy impl, relative-path is different when base-path is a file or a dir (let [base-segs (string/split base-path #"/" -1) path-segs (string/split sub-path #"/" -1) common-segs (take-while #(= (first %) (second %)) (map vector base-segs path-segs)) @@ -305,5 +303,8 @@ (defn absolute? "Whether path `p` is absolute." [p] - (or (.isAbsolute path p) - (utils/win32 p))) + (let [p (path-normalize p)] + (boolean (or (is-file-url? p) + (string/starts-with? p "/") + ;; is windows dir + (re-matches #"^[a-zA-Z]:[/\\]" p))))) diff --git a/src/main/frontend/util/fs.cljs b/src/main/frontend/util/fs.cljs index 8a12baa51..6e3b948d7 100644 --- a/src/main/frontend/util/fs.cljs +++ b/src/main/frontend/util/fs.cljs @@ -48,6 +48,7 @@ [root] (when (string? root) (p/let [exists? (fs/file-exists? root "logseq/graphs-txid.edn")] + (prn ::ex exists?) (when exists? (-> (p/let [txid-str (fs/read-file root "logseq/graphs-txid.edn") txid-meta (and txid-str (reader/read-string txid-str))]