Skip to content

Commit 95fa182

Browse files
committed
dev: libs tests improve deps diff
Naively preserve indentation when updating deps in deps.edn and project.clj for better at-a-glance diffs.
1 parent 4c5cba1 commit 95fa182

File tree

2 files changed

+25
-15
lines changed

2 files changed

+25
-15
lines changed

script/helper/deps_patcher.clj

Lines changed: 21 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
(ns helper.deps-patcher
22
"Quick and dirty little project.clj and deps.edn patcher"
3-
(:require [rewrite-clj.zip :as z]))
3+
(:require [rewrite-clj.node :as n]
4+
[rewrite-clj.zip :as z]))
45

56
(defn- find-project-deps
67
"Interested in top level deps only at this time."
@@ -22,10 +23,15 @@
2223
last))
2324

2425
(defn- add-project-deps [zloc new-deps]
25-
(reduce (fn [zloc dep]
26-
(z/append-child zloc dep))
27-
(find-project-deps zloc)
28-
new-deps))
26+
(let [zloc-deps (find-project-deps zloc)
27+
indent (n/spaces (-> zloc-deps z/node meta :col))]
28+
(reduce (fn [zloc dep]
29+
(-> zloc
30+
(z/append-child* (n/newlines 1))
31+
(z/append-child* indent)
32+
(z/append-child dep)))
33+
zloc-deps
34+
new-deps)))
2935

3036
(defn update-project-deps [{:keys [filename additions removals] :as kwargs}]
3137
(println kwargs)
@@ -48,9 +54,16 @@
4854
dep-syms))
4955

5056
(defn- add-deps-deps [zloc new-deps]
51-
(reduce (fn [zloc dep] (z/append-child zloc dep))
52-
(z/get zloc :deps)
53-
(mapcat identity new-deps)))
57+
(let [zloc-deps (z/get zloc :deps)
58+
indent (n/spaces (-> zloc-deps z/node meta :col))]
59+
(reduce (fn [zloc [k v]]
60+
(-> zloc
61+
(z/append-child* (n/newlines 1))
62+
(z/append-child* indent)
63+
(z/append-child k)
64+
(z/append-child v)))
65+
zloc-deps
66+
new-deps)))
5467

5568
(defn update-deps-deps [{:keys [filename additions removals] :as kwargs}]
5669
(println kwargs)

script/libs_tests.clj

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -144,7 +144,7 @@
144144
(defn deps-edn-v1-patch [{:keys [home-dir rewrite-clj-version]}]
145145
(patch-deps {:filename (str (fs/file home-dir "deps.edn"))
146146
:removals #{'rewrite-clj 'rewrite-clj/rewrite-clj}
147-
:additions {'rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}}}))
147+
:additions [['rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}]]}))
148148

149149
(defn- replace-in-file [fname match replacement]
150150
(let [orig-filename (str fname ".orig")
@@ -165,7 +165,7 @@
165165
(defn carve-patch [{:keys [home-dir rewrite-clj-version]}]
166166
(patch-deps {:filename (str (fs/file home-dir "deps.edn"))
167167
:removals #{'borkdude/rewrite-cljc}
168-
:additions {'rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}}})
168+
:additions [['rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}]]})
169169
(patch-rewrite-cljc-sources home-dir))
170170

171171
;;
@@ -184,7 +184,7 @@
184184
(defn- clojure-lsp-patch [{:keys [home-dir rewrite-clj-version]}]
185185
(patch-deps {:filename (str (fs/file home-dir "deps.edn"))
186186
:removals #{'rewrite-clj/rewrite-clj}
187-
:additions {'rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}}}))
187+
:additions [['rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}]]}))
188188

189189
;;
190190
;; cljstyle
@@ -201,7 +201,7 @@
201201
(defn depot-patch [{:keys [home-dir rewrite-clj-version]}]
202202
(patch-deps {:filename (str (fs/file home-dir "deps.edn"))
203203
:removals #{'rewrite-clj/rewrite-clj}
204-
:additions {'rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}}})
204+
:additions [['rewrite-clj/rewrite-clj {:mvn/version rewrite-clj-version}]]})
205205
(patch-rewrite-cljc-sources home-dir)
206206
(status/line :detail "=> depot uses but does not require rewrite-clj.node, need to adjust for rewrite-clj v1")
207207
(replace-in-file (str (fs/file home-dir "src/depot/zip.clj"))
@@ -228,9 +228,6 @@
228228
;; done with exercising my rewrite-clj skills for now! :-)
229229
(string/replace #"rewrite-clj \"[0-9.]+\""
230230
(format "rewrite-clj \"%s\"" rewrite-clj-version))
231-
;; lein-ancient uses pedantic? :abort, so need to match clojure versions
232-
(string/replace #"\[org.clojure/clojure .*\]"
233-
"[org.clojure/clojure \"1.10.3\" :scope \"provided\"]")
234231
(->> (spit p)))))
235232

236233
;;

0 commit comments

Comments
 (0)