|
@@ -1,52 +0,0 @@
|
|
|
-(ns parse-file
|
|
|
|
|
- (:require [logseq.graph-parser.cli :as gp-cli]
|
|
|
|
|
- [clojure.pprint :as pprint]
|
|
|
|
|
- [datascript.core :as d]))
|
|
|
|
|
-
|
|
|
|
|
-(defn- colorize-or-pretty-print
|
|
|
|
|
- [results]
|
|
|
|
|
- (if (zero? (.-status (gp-cli/sh ["which" "puget"] {})))
|
|
|
|
|
- (gp-cli/sh ["puget"] {:input (pr-str results)
|
|
|
|
|
- :stdio ["pipe" "inherit" "inherit"]})
|
|
|
|
|
- (pprint/pprint results)))
|
|
|
|
|
-
|
|
|
|
|
-(defn- get-all-page-properties
|
|
|
|
|
- [db]
|
|
|
|
|
- (->> (d/q '[:find (pull ?b [*])
|
|
|
|
|
- :where
|
|
|
|
|
- [?b :block/properties]]
|
|
|
|
|
- db)
|
|
|
|
|
- (map first)
|
|
|
|
|
- (map (fn [m] (zipmap (keys (:block/properties m)) (repeat 1))))
|
|
|
|
|
- (apply merge-with +)
|
|
|
|
|
- (into {})))
|
|
|
|
|
-
|
|
|
|
|
-(defn- analyze-file
|
|
|
|
|
- [db file]
|
|
|
|
|
- (let [results (map first
|
|
|
|
|
- (d/q '[:find (pull ?b [:db/id :block/content])
|
|
|
|
|
- :in $ ?path
|
|
|
|
|
- :where
|
|
|
|
|
- [?b :block/page ?page]
|
|
|
|
|
- [?page :block/file ?file]
|
|
|
|
|
- [?file :file/path ?path]]
|
|
|
|
|
- db
|
|
|
|
|
- file))]
|
|
|
|
|
- (colorize-or-pretty-print results)
|
|
|
|
|
- (println "Block count:" (count results))
|
|
|
|
|
- (println "Properties count:" (get-all-page-properties db))))
|
|
|
|
|
-
|
|
|
|
|
-(defn -main
|
|
|
|
|
- "Prints blocks for given file along with basic file stats"
|
|
|
|
|
- [& args]
|
|
|
|
|
- (when-not (= 2 (count args))
|
|
|
|
|
- (throw (ex-info "Usage: $0 DIR FILE" {})))
|
|
|
|
|
- (println "Parsing...")
|
|
|
|
|
- (let [[dir file] args
|
|
|
|
|
- {:keys [conn]} (gp-cli/parse-graph dir
|
|
|
|
|
- {:verbose false
|
|
|
|
|
- :files [{:file/path file
|
|
|
|
|
- :file/content (gp-cli/slurp file)}]})]
|
|
|
|
|
- (analyze-file @conn file)))
|
|
|
|
|
-
|
|
|
|
|
-(apply -main *command-line-args*)
|
|
|