Skip to content
Snippets Groups Projects
Commit 22161ab5 authored by Bruno Burke's avatar Bruno Burke :hamburger:
Browse files

search queries for documents

parent f4d0115d
No related branches found
No related tags found
No related merge requests found
Pipeline #2898 passed
......@@ -6,11 +6,12 @@
[clojure.edn :refer [read-string]]
[clojure.pprint :refer [pprint]]))
(def repo-dir (atom ""))
(def repositories (atom {}))
(def default-repository :default)
(def upstream-ssh-identity "upstream")
(def storage-directory (atom ""))
(defonce repo-dir (atom ""))
(defonce repositories (atom {}))
(defonce default-repository :default)
(defonce upstream-ssh-identity "upstream")
(defonce storage-directory (atom ""))
(defn init-repository [dir]
(when-not (jp/discover-repo dir)
......@@ -43,6 +44,12 @@
file-path (str repo-directory "/" id)]
file-path))
(defn get-repository-path [repository]
(let [repo-directory (get-in @repositories [repository :directory])]
repo-directory))
(defn valid-id? [id repository]
(let [file-path (get-file-path id repository)]
(.exists (io/as-file file-path))))
......@@ -80,6 +87,34 @@
(when (valid-id? id repository)
(read-string (slurp (get-file-path id repository)))))
(defn list-documents [& {:keys [repository] :or {repository default-repository}}]
(let [repo-path (get-repository-path repository)
files (->> (io/file repo-path)
.listFiles
(filter #(.isFile %))
(map #(.getName %))
)]
files))
(defn query-fits? [data query]
(reduce (fn [a b]
(and (true? a) (= a b)))
(map
(fn [[key [compare-fn val]]]
(compare-fn (key data) val))
query)))
(defn find-documents [query & {:keys [repository] :or {repository default-repository}}]
(let [docs (list-documents :repository repository)]
(into {} (keep (fn [fname]
(let [doc (load-document fname :repository repository)]
(when (query-fits? doc query)
[fname doc]
)
))
docs))))
(defn get-upstreams [repo-name]
(-> (get-repo-data repo-name)
:upstreams))
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment