From ac84465d774004d3f37bfe1e33980ef0b1ab46c9 Mon Sep 17 00:00:00 2001 From: Jason Felice Date: Tue, 17 Jun 2014 11:19:36 -0400 Subject: [PATCH 1/3] Remove unneeded call to `resolve` --- src/leiningen/new.clj | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/leiningen/new.clj b/src/leiningen/new.clj index c8e24c16..ae273343 100644 --- a/src/leiningen/new.clj +++ b/src/leiningen/new.clj @@ -2,6 +2,7 @@ "Generate project scaffolding based on a template." (:refer-clojure :exclude [new list]) (:require [bultitude.core :as bultitude] + [leiningen.core.classpath :as cp] [leiningen.core.user :as user] [leiningen.core.main :refer [abort parse-options option-arg]] [leiningen.new.templates :refer [*dir* *force?*]]) @@ -19,13 +20,12 @@ (-> (user/profiles) :user :plugin-repositories))}) (defn resolve-remote-template [name sym] - (if-let [get-dep (resolve 'leiningen.core.classpath/resolve-dependencies)] - (try (get-dep :templates (fake-project name) :add-classpath? true) - (require sym) - true - (catch clojure.lang.Compiler$CompilerException e - (abort (str "Could not load template, failed with: " (.getMessage e)))) - (catch Exception e nil)))) + (try (cp/resolve-dependencies :templates (fake-project name) :add-classpath? true) + (require sym) + true + (catch clojure.lang.Compiler$CompilerException e + (abort (str "Could not load template, failed with: " (.getMessage e)))) + (catch Exception e nil))) (defn resolve-template [name] (let [sym (symbol (str "leiningen.new." name))] From 9258dc6da25599cd98662253b7c34de279afca57 Mon Sep 17 00:00:00 2001 From: Jason Felice Date: Tue, 17 Jun 2014 12:15:12 -0400 Subject: [PATCH 2/3] Support pairseqs in profiles :plugin-repositories --- src/leiningen/new.clj | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/leiningen/new.clj b/src/leiningen/new.clj index ae273343..8fecab3a 100644 --- a/src/leiningen/new.clj +++ b/src/leiningen/new.clj @@ -13,11 +13,13 @@ (defn- fake-project [name] {:templates [[(symbol name "lein-template") (if *use-snapshots?* "(0.0.0,)" "RELEASE")]] - :repositories (merge {"clojars" {:url "http://clojars.org/repo/" - :update :always} - "central" {:url "http://repo1.maven.org/maven2" - :update :always}} - (-> (user/profiles) :user :plugin-repositories))}) + :repositories (reduce + conj + [["clojars" {:url "http://clojars.org/repo/" + :update :always}] + ["central" {:url "http://repo1.maven.org/maven2" + :update :always}]] + (-> (user/profiles) :user :plugin-repositories))}) (defn resolve-remote-template [name sym] (try (cp/resolve-dependencies :templates (fake-project name) :add-classpath? true) From 1f5013c2be94fc2dfc49153beba50d527dddae9c Mon Sep 17 00:00:00 2001 From: Jason Felice Date: Tue, 17 Jun 2014 14:29:27 -0400 Subject: [PATCH 3/3] Use leiningen.core.project's idea of default repositories --- src/leiningen/new.clj | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/src/leiningen/new.clj b/src/leiningen/new.clj index 8fecab3a..808be87d 100644 --- a/src/leiningen/new.clj +++ b/src/leiningen/new.clj @@ -3,6 +3,7 @@ (:refer-clojure :exclude [new list]) (:require [bultitude.core :as bultitude] [leiningen.core.classpath :as cp] + [leiningen.core.project :as project] [leiningen.core.user :as user] [leiningen.core.main :refer [abort parse-options option-arg]] [leiningen.new.templates :refer [*dir* *force?*]]) @@ -11,15 +12,16 @@ (def ^:dynamic *use-snapshots?* false) (defn- fake-project [name] - {:templates [[(symbol name "lein-template") (if *use-snapshots?* - "(0.0.0,)" "RELEASE")]] - :repositories (reduce - conj - [["clojars" {:url "http://clojars.org/repo/" - :update :always}] - ["central" {:url "http://repo1.maven.org/maven2" - :update :always}]] - (-> (user/profiles) :user :plugin-repositories))}) + (let [template-symbol (symbol name "lein-template") + template-version (if *use-snapshots?* + "(0.0.0,)" + "RELEASE") + repositories (reduce + (:reduce (meta project/default-repositories)) + project/default-repositories + (-> (user/profiles) :user :plugin-repositories))] + {:templates [[template-symbol template-version]] + :repositories repositories})) (defn resolve-remote-template [name sym] (try (cp/resolve-dependencies :templates (fake-project name) :add-classpath? true)