From 89e434e9c96bd6df8f3fb43993d52a6d845d4ae2 Mon Sep 17 00:00:00 2001 From: Mike Blume Date: Sun, 25 Jan 2015 10:00:48 -0800 Subject: [PATCH] avoid duplicate entries in manifest --- src/leiningen/jar.clj | 23 ++++++++++++----------- 1 file changed, 12 insertions(+), 11 deletions(-) diff --git a/src/leiningen/jar.clj b/src/leiningen/jar.clj index dcdf09c6..4ef86ee7 100644 --- a/src/leiningen/jar.clj +++ b/src/leiningen/jar.clj @@ -21,9 +21,9 @@ (.replace path "\\" "/")) (def ^:private default-manifest - [["Created-By" (str "Leiningen " (main/leiningen-version))] - ["Built-By" (System/getProperty "user.name")] - ["Build-Jdk" (System/getProperty "java.version")]]) + {"Created-By" (str "Leiningen " (main/leiningen-version)) + "Built-By" (System/getProperty "user.name") + "Build-Jdk" (System/getProperty "java.version")}) (declare ^:private manifest-entry) @@ -51,14 +51,15 @@ (seq mf))) (defn ^:internal make-manifest [project] - (let [initial-mf - (concat (if (get (:manifest project) "Main-Class") - default-manifest - (conj default-manifest - ["Main-Class" - (munge (str (:main project 'clojure.main)))])) - (manifest-map-to-reordered-seq (:manifest project)))] - (->> initial-mf + (let [project-manifest (into {} (:manifest project))] + (->> project-manifest + (merge + (if (get project-manifest "Main-Class") + default-manifest + (assoc default-manifest + "Main-Class" + (munge (str (:main project 'clojure.main)))))) + manifest-map-to-reordered-seq (manifest-entries project) (cons "Manifest-Version: 1.0\n") ;; Manifest-Version line must be first (string/join "")