Merge branch 'retain-profile-metadata'
This commit is contained in:
commit
491c2c9595
3 changed files with 36 additions and 1 deletions
14
leiningen-core/dev-resources/profile-metadata.clj
Normal file
14
leiningen-core/dev-resources/profile-metadata.clj
Normal file
|
@ -0,0 +1,14 @@
|
|||
(defproject metadata-check "0.1.0"
|
||||
:description "Check that profile metadata is retained."
|
||||
:license {:name "Eclipse Public License"}
|
||||
:dependencies [[leiningen-core "2.0.0-SNAPSHOT"]
|
||||
[clucy "0.2.2" :exclusions [org.clojure/clojure]]
|
||||
[lancet "1.0.1"]
|
||||
[robert/hooke "1.1.2"]
|
||||
[stencil "0.2.0"]]
|
||||
:profiles {:bar {:dependencies ^:please-keep-me [[lancet "1.0.2"]
|
||||
[stencil "0.3.0"]]
|
||||
:repositories ^:replace []}
|
||||
:baz {:dependencies ^:hello []
|
||||
:repositories ^:displace []
|
||||
:java-opts ["my" "java" "opts"]}})
|
|
@ -281,7 +281,15 @@
|
|||
normalizing values inside the map."
|
||||
[raw-map empty-defaults]
|
||||
(with-meta
|
||||
(meta-merge
|
||||
(merge-with
|
||||
(fn [left right]
|
||||
;; Assumes that left always contains :reduce OR :prepend in its meta
|
||||
(with-meta
|
||||
(cond (-> left meta :reduce) (-> left meta :reduce
|
||||
(reduce left right))
|
||||
(-> left meta :prepend) (concat right left))
|
||||
(merge (meta left)
|
||||
(dissoc (meta right) :top-displace))))
|
||||
empty-defaults
|
||||
(-> raw-map
|
||||
(assoc :jvm-opts (or (:jvm-opts raw-map) (:java-opts raw-map)))
|
||||
|
|
|
@ -67,6 +67,19 @@
|
|||
;; TODO: test omit-default
|
||||
;; TODO: test reading project that doesn't def project
|
||||
|
||||
(deftest test-retain-profile-metadata
|
||||
(let [actual (read (.getFile (io/resource "profile-metadata.clj")))
|
||||
profiles (:profiles actual)]
|
||||
(is (true? (-> profiles :bar :dependencies meta :please-keep-me)))
|
||||
(is (true? (-> profiles :bar :repositories meta :replace)))
|
||||
(is (true? (-> profiles :baz :dependencies meta :hello)))
|
||||
(is (true? (-> profiles :baz :repositories meta :displace)))))
|
||||
|
||||
(deftest test-alias-in-profiles
|
||||
(let [actual (read (.getFile (io/resource "profile-metadata.clj")))]
|
||||
(is (= ["my" "java" "opts"]
|
||||
(-> actual :profiles :baz :jvm-opts)))))
|
||||
|
||||
(deftest test-merge-profile-displace-replace
|
||||
(let [test-profiles {:carmine {:foo [3 4]}
|
||||
:carmined {:foo ^:displace [3 4]}
|
||||
|
|
Loading…
Reference in a new issue