mirror of
https://github.com/logseq/logseq.git
synced 2026-05-01 01:16:27 +00:00
enhance(dev): option to query multiple graphs
This commit is contained in:
26
deps/db/script/query.cljs
vendored
26
deps/db/script/query.cljs
vendored
@@ -39,18 +39,15 @@
|
||||
:desc "Print more info"}
|
||||
:raw {:alias :r
|
||||
:desc "Print results plainly. Useful when piped to bb"}
|
||||
:additional-graphs {:alias :a
|
||||
:coerce []
|
||||
:desc "Additional graphs to query"}
|
||||
:entity {:alias :e
|
||||
:coerce []
|
||||
:desc "Lookup entities instead of query"}})
|
||||
|
||||
(defn -main [args]
|
||||
(let [{options :opts args' :args} (cli/parse-args args {:spec spec})
|
||||
[graph-dir & args''] args'
|
||||
_ (when (or (nil? graph-dir) (:help options))
|
||||
(println (str "Usage: $0 GRAPH-NAME [& ARGS] [OPTIONS]\nOptions:\n"
|
||||
(cli/format-opts {:spec spec})))
|
||||
(js/process.exit 1))
|
||||
[dir db-name] (get-dir-and-db-name graph-dir)
|
||||
(defn query-graph [graph-dir args'' options]
|
||||
(let [[dir db-name] (get-dir-and-db-name graph-dir)
|
||||
conn (sqlite-cli/open-db! dir db-name)
|
||||
results (if (:entity options)
|
||||
(map #(when-let [ent (d/entity @conn
|
||||
@@ -71,5 +68,18 @@
|
||||
(sh ["puget"] {:input (pr-str results) :stdio ["pipe" "inherit" "inherit"]})
|
||||
(pprint/pprint results)))))
|
||||
|
||||
(defn -main [args]
|
||||
(let [{options :opts args' :args} (cli/parse-args args {:spec spec})
|
||||
[graph-dir & args''] args'
|
||||
_ (when (or (nil? graph-dir) (:help options))
|
||||
(println (str "Usage: $0 GRAPH-NAME [& ARGS] [OPTIONS]\nOptions:\n"
|
||||
(cli/format-opts {:spec spec})))
|
||||
(js/process.exit 1))
|
||||
graph-dirs (cond-> [graph-dir]
|
||||
(:additional-graphs options)
|
||||
(into (:additional-graphs options)))]
|
||||
(doseq [graph-dir graph-dirs]
|
||||
(query-graph graph-dir args'' options))))
|
||||
|
||||
(when (= nbb/*file* (nbb/invoked-file))
|
||||
(-main *command-line-args*))
|
||||
|
||||
Reference in New Issue
Block a user