Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 13 additions & 7 deletions src/namenu/deps_diff.clj
Original file line number Diff line number Diff line change
Expand Up @@ -34,15 +34,21 @@
(output/cli data))

(defn diff*
"Returns a map of :removed, :added and :modified dependencies.
Each key is a dependency name and the value is a map of :from and :to versions"
[deps-from deps-to]
(let [key-set (comp set keys)

[removed-deps added-deps common-deps] (data/diff (key-set deps-from) (key-set deps-to))]
;; don't need to sort here
{:removed (into (sorted-map) (select-keys deps-from removed-deps))
:added (into (sorted-map) (select-keys deps-to added-deps))
:modified (into (sorted-map) (set/difference (set (select-keys deps-to common-deps))
(select-keys deps-from common-deps)))}))
[removed-deps added-deps common-deps] (data/diff (key-set deps-from) (key-set deps-to))
removed (map (fn [k] [k {:from (get deps-from k)}]) removed-deps)
added (map (fn [k] [k {:to (get deps-to k)}]) added-deps)
modified-keys (keys (set/difference (set (select-keys deps-to common-deps))
(select-keys deps-from common-deps)))
modified (map (fn [k] [k {:from (get deps-from k)
:to (get deps-to k)}])
modified-keys)]
{:removed (into {} removed)
:added (into {} added)
:modified (into {} modified)}))

(defn diff
"
Expand Down
20 changes: 15 additions & 5 deletions src/namenu/deps_diff/output.clj
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,18 @@
:added "https://img.shields.io/badge/Added-green"
:modified "https://img.shields.io/badge/Modified-blue"})

(defn ver-string
"Creates a version string from a map of :from and :to version data.

Handles the case where only :to or :from is precent (because of adding/removing a dependency)."
[{:keys [from to] :as ver}]
(cond
(and (some? from) (some? to)) (str (make-ver from) " -> " (make-ver to))
(some? to) (make-ver to)
(some? from) (make-ver from)))

(defn make-row [operation [dep ver]]
(str "| ![](" (get assets-url operation) ") | `" dep "` | " (make-ver ver) " |"))
(str "| ![](" (get assets-url operation) ") | `" dep "` | " (ver-string ver) " |"))

(defn markdown
[{:keys [removed added modified]}]
Expand Down Expand Up @@ -49,7 +59,7 @@
name
" "]
[:yellow
(make-ver ver)]))
(ver-string ver)]))
removed)

(run! (fn [[name ver]]
Expand All @@ -63,7 +73,7 @@
name
" "]
[:yellow
(make-ver ver)]))
(ver-string ver)]))
added)

(run! (fn [[name ver]]
Expand All @@ -77,7 +87,7 @@
name
" "]
[:yellow
(make-ver ver)]))
(ver-string ver)]))
modified))))

(comment
Expand Down Expand Up @@ -110,4 +120,4 @@
:pad :right} "Modified"]
" "
[{:font :yellow}
"2.0"])))
"1.0 -> 2.0"])))