Merge pull request #1568 from eraserhd/new_remote_template_fixes
Fix installing templates from internal repositories
This commit is contained in:
commit
4aefda6d47
1 changed files with 18 additions and 14 deletions
|
@ -2,6 +2,8 @@
|
|||
"Generate project scaffolding based on a template."
|
||||
(: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?*]])
|
||||
|
@ -10,22 +12,24 @@
|
|||
(def ^:dynamic *use-snapshots?* false)
|
||||
|
||||
(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))})
|
||||
(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]
|
||||
(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))]
|
||||
|
|
Loading…
Reference in a new issue