avoid duplicate entries in manifest

This commit is contained in:
Mike Blume 2015-01-25 10:00:48 -08:00
parent f4cb405781
commit 89e434e9c9

View file

@ -21,9 +21,9 @@
(.replace path "\\" "/")) (.replace path "\\" "/"))
(def ^:private default-manifest (def ^:private default-manifest
[["Created-By" (str "Leiningen " (main/leiningen-version))] {"Created-By" (str "Leiningen " (main/leiningen-version))
["Built-By" (System/getProperty "user.name")] "Built-By" (System/getProperty "user.name")
["Build-Jdk" (System/getProperty "java.version")]]) "Build-Jdk" (System/getProperty "java.version")})
(declare ^:private manifest-entry) (declare ^:private manifest-entry)
@ -51,14 +51,15 @@
(seq mf))) (seq mf)))
(defn ^:internal make-manifest [project] (defn ^:internal make-manifest [project]
(let [initial-mf (let [project-manifest (into {} (:manifest project))]
(concat (if (get (:manifest project) "Main-Class") (->> project-manifest
(merge
(if (get project-manifest "Main-Class")
default-manifest default-manifest
(conj default-manifest (assoc default-manifest
["Main-Class" "Main-Class"
(munge (str (:main project 'clojure.main)))])) (munge (str (:main project 'clojure.main))))))
(manifest-map-to-reordered-seq (:manifest project)))] manifest-map-to-reordered-seq
(->> initial-mf
(manifest-entries project) (manifest-entries project)
(cons "Manifest-Version: 1.0\n") ;; Manifest-Version line must be first (cons "Manifest-Version: 1.0\n") ;; Manifest-Version line must be first
(string/join "") (string/join "")