mirror of
https://github.com/logseq/logseq.git
synced 2026-02-01 22:47:36 +00:00
refactor: have one fn to fetch ~/logseq/graphs dir
Also add deps.edn to cli dep which is needed for reuse with frontend
This commit is contained in:
committed by
Gabriel Horner
parent
1765148851
commit
241c1c104e
1
deps.edn
1
deps.edn
@@ -37,6 +37,7 @@
|
||||
logseq/graph-parser {:local/root "deps/graph-parser"}
|
||||
logseq/outliner {:local/root "deps/outliner"}
|
||||
logseq/publishing {:local/root "deps/publishing"}
|
||||
logseq/cli {:local/root "deps/cli"}
|
||||
logseq/shui {:local/root "deps/shui"}
|
||||
metosin/malli {:mvn/version "0.16.1"}
|
||||
com.cognitect/transit-cljs {:mvn/version "0.8.280"}
|
||||
|
||||
7
deps/cli/deps.edn
vendored
Normal file
7
deps/cli/deps.edn
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
{:paths ["src"]
|
||||
:deps
|
||||
{logseq/outliner {:local/root "../outliner"}}
|
||||
|
||||
:aliases
|
||||
{:clj-kondo {:replace-deps {clj-kondo/clj-kondo {:mvn/version "2024.09.27"}}
|
||||
:main-opts ["-m" "clj-kondo.main"]}}}
|
||||
12
deps/cli/src/logseq/cli/common/graph.cljs
vendored
12
deps/cli/src/logseq/cli/common/graph.cljs
vendored
@@ -1,4 +1,4 @@
|
||||
(ns logseq.cli.common.graph
|
||||
(ns ^:node-only logseq.cli.common.graph
|
||||
"Graph related fns shared between CLI and electron"
|
||||
(:require ["fs-extra" :as fs-extra]
|
||||
["os" :as os]
|
||||
@@ -14,15 +14,15 @@
|
||||
(string/replace "+3A+" ":")
|
||||
(string/replace "++" "/"))))
|
||||
|
||||
(defn- get-db-based-graphs-dir
|
||||
(defn get-db-graphs-dir
|
||||
"Directory where DB graphs are stored"
|
||||
[]
|
||||
(let [dir (node-path/join (os/homedir) "logseq" "graphs")]
|
||||
(fs-extra/ensureDirSync dir)
|
||||
dir))
|
||||
(node-path/join (os/homedir) "logseq" "graphs"))
|
||||
|
||||
(defn get-db-based-graphs
|
||||
[]
|
||||
(let [dir (get-db-based-graphs-dir)]
|
||||
(let [dir (get-db-graphs-dir)]
|
||||
(fs-extra/ensureDirSync dir)
|
||||
(->> (common-graph/read-directories dir)
|
||||
(remove (fn [s] (= s common-config/unlinked-graphs-dir)))
|
||||
(map graph-name->path)
|
||||
|
||||
1
deps/db/src/logseq/db/common/sqlite_cli.cljs
vendored
1
deps/db/src/logseq/db/common/sqlite_cli.cljs
vendored
@@ -112,4 +112,5 @@
|
||||
;; $ORIGINAL_PWD used by bb tasks to correct current dir
|
||||
(node-path/join (or js/process.env.ORIGINAL_PWD ".") %))]
|
||||
((juxt node-path/dirname node-path/basename) (resolve-path' graph-dir-or-path)))
|
||||
;; TODO: Reuse with get-db-graphs-dir when there is a db ns that is usable by electron i.e. no better-sqlite3
|
||||
[(node-path/join (os/homedir) "logseq" "graphs") graph-dir-or-path])))
|
||||
|
||||
@@ -1,44 +1,39 @@
|
||||
(ns electron.db
|
||||
"Provides SQLite dbs for electron and manages files of those dbs"
|
||||
(:require ["electron" :refer [app]]
|
||||
["fs-extra" :as fs]
|
||||
(:require ["fs-extra" :as fs]
|
||||
["path" :as node-path]
|
||||
[logseq.cli.common.graph :as cli-common-graph]
|
||||
[logseq.common.config :as common-config]
|
||||
[logseq.db.common.sqlite :as common-sqlite]))
|
||||
|
||||
(defn get-graphs-dir
|
||||
[]
|
||||
(let [path (.getPath ^object app "home")]
|
||||
(node-path/join path "logseq" "graphs")))
|
||||
|
||||
(defn ensure-graphs-dir!
|
||||
[]
|
||||
(fs/ensureDirSync (get-graphs-dir)))
|
||||
(fs/ensureDirSync (cli-common-graph/get-db-graphs-dir)))
|
||||
|
||||
(defn ensure-graph-dir!
|
||||
[db-name]
|
||||
(ensure-graphs-dir!)
|
||||
(let [graph-dir (node-path/join (get-graphs-dir) (common-sqlite/sanitize-db-name db-name))]
|
||||
(let [graph-dir (node-path/join (cli-common-graph/get-db-graphs-dir) (common-sqlite/sanitize-db-name db-name))]
|
||||
(fs/ensureDirSync graph-dir)
|
||||
graph-dir))
|
||||
|
||||
(defn save-db!
|
||||
[db-name data]
|
||||
(let [[_db-name db-path] (common-sqlite/get-db-full-path (get-graphs-dir) db-name)]
|
||||
(let [[_db-name db-path] (common-sqlite/get-db-full-path (cli-common-graph/get-db-graphs-dir) db-name)]
|
||||
(fs/writeFileSync db-path data)))
|
||||
|
||||
(defn get-db
|
||||
[db-name]
|
||||
(let [_ (ensure-graph-dir! db-name)
|
||||
[_db-name db-path] (common-sqlite/get-db-full-path (get-graphs-dir) db-name)]
|
||||
[_db-name db-path] (common-sqlite/get-db-full-path (cli-common-graph/get-db-graphs-dir) db-name)]
|
||||
(when (fs/existsSync db-path)
|
||||
(fs/readFileSync db-path))))
|
||||
|
||||
(defn unlink-graph!
|
||||
[repo]
|
||||
(let [db-name (common-sqlite/sanitize-db-name repo)
|
||||
path (node-path/join (get-graphs-dir) db-name)
|
||||
unlinked (node-path/join (get-graphs-dir) common-config/unlinked-graphs-dir)
|
||||
path (node-path/join (cli-common-graph/get-db-graphs-dir) db-name)
|
||||
unlinked (node-path/join (cli-common-graph/get-db-graphs-dir) common-config/unlinked-graphs-dir)
|
||||
new-path (node-path/join unlinked db-name)
|
||||
new-path-exists? (fs/existsSync new-path)
|
||||
new-path' (if new-path-exists?
|
||||
|
||||
@@ -6,9 +6,9 @@
|
||||
[cljs-bean.core :as bean]
|
||||
[clojure.string :as string]
|
||||
[electron.configs :as cfgs]
|
||||
[electron.db :as db]
|
||||
[electron.logger :as logger]
|
||||
[logseq.db.sqlite.util :as sqlite-util]
|
||||
[logseq.cli.common.graph :as cli-common-graph]
|
||||
[promesa.core :as p]))
|
||||
|
||||
(defonce *win (atom nil)) ;; The main window
|
||||
@@ -255,7 +255,7 @@
|
||||
"required by all internal state in the electron section"
|
||||
[graph-name]
|
||||
(cond (string/starts-with? graph-name sqlite-util/db-version-prefix)
|
||||
(node-path/join (db/get-graphs-dir) (string/replace-first graph-name sqlite-util/db-version-prefix ""))
|
||||
(node-path/join (cli-common-graph/get-db-graphs-dir) (string/replace-first graph-name sqlite-util/db-version-prefix ""))
|
||||
(string/includes? graph-name "logseq_local_")
|
||||
(string/replace-first graph-name "logseq_local_" "")))
|
||||
|
||||
@@ -263,7 +263,7 @@
|
||||
(defn get-graph-name
|
||||
"Reverse `get-graph-dir`"
|
||||
[graph-dir]
|
||||
(if (= (db/get-graphs-dir) (node-path/dirname graph-dir))
|
||||
(if (= (cli-common-graph/get-db-graphs-dir) (node-path/dirname graph-dir))
|
||||
(str sqlite-util/db-version-prefix (node-path/basename graph-dir))
|
||||
(str "logseq_local_" graph-dir))))
|
||||
|
||||
|
||||
Reference in New Issue
Block a user