File tree Expand file tree Collapse file tree 4 files changed +112
-0
lines changed
src/main/shadow/cljs/launcher Expand file tree Collapse file tree 4 files changed +112
-0
lines changed Original file line number Diff line number Diff line change 1+ target /
2+ node_modules /
3+ checkouts /
4+ pom.xml
5+ pom.xml.asc
6+ * .iml
7+ * .jar
8+ * .js.map
9+ * .class
10+ .cpcache
11+ .cljs-cache
12+ .shadow-cljs
13+ .cljs-repl
14+ .cljs_node_repl
15+ .idea
16+ .lein- *
17+ .nrepl- *
18+ /tmp
19+ .DS_Store
20+ yarn.lock
21+ package-lock.json
22+ /package.json
23+ * .log
Original file line number Diff line number Diff line change 1+ This is a utility used by ` shadow-cljs ` to resolve/download dependencies.
2+
3+ https://github.com/thheller/shadow-cljs
Original file line number Diff line number Diff line change 1+ (defproject shadow-cljs /launcher " 1.2.0"
2+ :description " CLJS development tools"
3+ :url " https://github.com/thheller/shadow-cljs"
4+ :dependencies
5+ [[org.clojure/clojure " 1.9.0" ]
6+ [com.cemerick/pomegranate " 1.0.0" ]
7+ [org.slf4j/slf4j-nop " 1.7.25" ]]
8+
9+ :source-paths
10+ [" src/main" ]
11+
12+ :profiles
13+ {:uberjar
14+ {:aot [shadow.cljs.launcher.deps]
15+ :main shadow.cljs.launcher.deps}})
Original file line number Diff line number Diff line change 1+ (ns shadow.cljs.launcher.deps
2+ " lightweight launcher that just downloads jars and builds a classpath"
3+ (:gen-class )
4+ (:require
5+ [clojure.java.io :as io]
6+ [cemerick.pomegranate.aether :as aether]))
7+
8+ (defn transfer-listener
9+ [{:keys [type error resource] :as info}]
10+ (let [{:keys [name repository]} resource]
11+ (binding [*out* *err*]
12+ (case type
13+ :started (println " Retrieving" name " from" repository)
14+ ; ; :progressed
15+ ; ; :succeeded
16+ :corrupted (when error (println (.getMessage error)))
17+ nil ))))
18+
19+ (defn -main []
20+ (try
21+ (let [{:keys [cache-root repositories proxy local-repo dependencies mirrors version]
22+ :or {dependencies []
23+ repositories {}
24+ cache-root " .shadow-cljs" }
25+ :as config}
26+ (read *in*)]
27+
28+ (println " shadow-cljs - updating dependencies" )
29+
30+ ; ; FIXME: resolve conflicts?
31+ (let [resolve-args
32+ (-> {:coordinates
33+ dependencies
34+ :repositories
35+ (merge aether/maven-central {" clojars" " https://clojars.org/repo" } repositories)
36+ :transfer-listener
37+ transfer-listener}
38+ (cond->
39+ mirrors
40+ (assoc :mirrors mirrors)
41+ proxy
42+ (assoc :proxy proxy)
43+ local-repo
44+ (assoc :local-repo local-repo)
45+ ))
46+
47+ deps
48+ (apply aether/resolve-dependencies (into [] (mapcat identity) resolve-args))
49+
50+ files
51+ (into [] (map #(.getAbsolutePath %)) (aether/dependency-files deps))
52+
53+ result
54+ {:dependencies dependencies
55+ :version version
56+ :files files
57+ :deps deps}
58+
59+ classpath-file
60+ (io/file cache-root " classpath.edn" )]
61+
62+ (io/make-parents classpath-file)
63+
64+ (spit classpath-file (pr-str result)))
65+
66+ (println " shadow-cljs - dependencies updated" ))
67+
68+ (catch Exception e
69+ (println " shadow-cljs - dependency update failed -" (.getMessage e))
70+ (System/exit 1 )
71+ )))
You can’t perform that action at this time.
0 commit comments