Normalize format of :deploy-repositories and :plugin-repositories too.
Fixes #752.
This commit is contained in:
parent
1843348d12
commit
b5ea5a0f09
4 changed files with 25 additions and 15 deletions
|
@ -67,20 +67,27 @@
|
|||
:subprocess))}))))
|
||||
|
||||
(defn- de-dupe-repo [[repositories seen?] [id settings]]
|
||||
(let [settings (if (string? settings) {:url settings} settings)]
|
||||
;; repositories from user profiles can be just credentials, so check :url
|
||||
(if (or (seen? id) (not (:url settings)))
|
||||
[repositories seen?]
|
||||
[(conj repositories [id settings]) (conj seen? id)])))
|
||||
;; repositories from user profiles can be just credentials, so check :url
|
||||
(if (or (seen? id) (not (:url settings)))
|
||||
[repositories seen?]
|
||||
[(conj repositories [id settings]) (conj seen? id)]))
|
||||
|
||||
(defn- mapize-settings [repositories]
|
||||
(for [[id settings] repositories]
|
||||
[id (if (string? settings) {:url settings} settings)]))
|
||||
|
||||
(defn normalize-repos [{:keys [omit-default-repositories repositories]
|
||||
:as project}]
|
||||
(assoc project :repositories
|
||||
(first (reduce de-dupe-repo
|
||||
(if-not omit-default-repositories
|
||||
[(:repositories defaults)
|
||||
(set (map first (:repositories defaults)))]
|
||||
[[] #{}]) repositories))))
|
||||
(-> project
|
||||
(update-in [:repositories] mapize-settings)
|
||||
(update-in [:deploy-repositories] mapize-settings)
|
||||
(update-in [:plugin-repositories] mapize-settings)
|
||||
(assoc :repositories
|
||||
(first (reduce de-dupe-repo
|
||||
(if-not omit-default-repositories
|
||||
[(:repositories defaults)
|
||||
(set (map first (:repositories defaults)))]
|
||||
[[] #{}]) repositories)))))
|
||||
|
||||
(defn- without-version [[id version & other]]
|
||||
(-> (apply hash-map other)
|
||||
|
|
|
@ -90,6 +90,7 @@
|
|||
|
||||
Also provides readme, faq, tutorial, news, sample, profiles,
|
||||
deploying and copying info."
|
||||
;; TODO: explain partial aliases in specific help
|
||||
([project task] (println (or (static-help task) (help-for project task))))
|
||||
([project]
|
||||
(println "Leiningen is a tool for working with Clojure projects.\n")
|
||||
|
@ -97,10 +98,11 @@ deploying and copying info."
|
|||
(doseq [task-ns (main/tasks)]
|
||||
(println (help-summary-for task-ns)))
|
||||
(println "\nRun lein help $TASK for details.")
|
||||
;; TODO: show user-level aliases too
|
||||
(if-let [aliases (:aliases project)]
|
||||
(do
|
||||
(println "\nAliases:")
|
||||
(doseq [[k v] aliases]
|
||||
(println (str k " " v)))))
|
||||
(println "\nSee also: readme, faq, tutorial, news, sample, profiles,
|
||||
deploying and copying.")))
|
||||
(println "\nSee also: readme, faq, tutorial, news, sample, profiles,"
|
||||
"deploying and copying.")))
|
||||
|
|
|
@ -109,6 +109,7 @@ Also accepts a second parameter for fetching successive pages."
|
|||
;; Maven's indexer requires over 1GB of free space for a <100M index
|
||||
(let [orig-tmp (System/getProperty "java.io.tmpdir")
|
||||
new-tmp (io/file (user/leiningen-home) "indices" "tmp")
|
||||
;; TODO: check when project is nil
|
||||
contexts (doall (map add-context (:repositories project)))]
|
||||
(try
|
||||
(.mkdirs new-tmp)
|
||||
|
|
|
@ -23,5 +23,5 @@
|
|||
:default (complement :integration)
|
||||
:random (fn [_] (> (rand) ~(float 1/2)))
|
||||
:all (constantly true)}
|
||||
:repositories {"snapshots" ~(format "file://%s/lein-repo"
|
||||
(System/getProperty "java.io.tmpdir"))})
|
||||
:deploy-repositories {"snapshots" ~(format "file://%s/lein-repo"
|
||||
(System/getProperty "java.io.tmpdir"))})
|
||||
|
|
Loading…
Reference in a new issue