Created
November 23, 2010 00:11
-
-
Save davidsantiago/710988 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(defn maven-artifact | |
"Copy a jar to a filesystem location from a maven repo. Artifacts are a sequence | |
consisting of group, artifact, and version. Doesn't support SNAPSHOTS right now." | |
[request dir-path maven-repo-url artifacts] | |
(let [[group artifact version] (first artifacts)] | |
(if (not (and group artifact version)) | |
;; Ran out of artifacts, return the request. | |
request | |
(let [file-name (str artifact "-" version ".jar") | |
group-path (join "/" (split group #"\.")) | |
artifact-url (str maven-repo-url "/" group-path "/" artifact "/" version | |
"/" file-name)] | |
(recur (remote-file/remote-file request (str dir-path "/" file-name) | |
:url artifact-url) | |
dir-path maven-repo-url (rest artifacts)))))) | |
(-> request | |
(directory/directory "/opt/clutch_jars" :owner "david") | |
(maven-artifact "/opt/clutch_jars" | |
"http://repo1.maven.org/maven2" | |
[["org.clojure" "clojure" "1.2.0"] | |
["org.clojure" "clojure-contrib" "1.2.0"]]) | |
(maven-artifact "/opt/clutch_jars" | |
"http://clojars.org/repo" | |
[["com.ashafa" "clutch" "0.2.3-SNAPSHOT"]])) | |
;; Results in this output... | |
;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
Directory /opt/clutch_jars... | |
...done | |
remote-file /opt/clutch_jars/clojure-1.2.0.jar... | |
MD5 sum is abdf685c42f362dfe0f36e325b8dc724 /opt/clutch_jars/clojure-1.2.0.jar | |
ls: cannot access /opt/clutch_jars/clojure-1.2.0.jar.~[0-9]*~: No such file or directory | |
...done | |
remote-file /opt/clutch_jars/clojure-contrib-1.2.0.jar... | |
curl: (22) The requested URL returned error: 404 | |
mv: cannot stat `/opt/clutch_jars/clojure-contrib-1.2.0.jar.new': No such file or directory | |
mv: cannot stat `/opt/clutch_jars/clojure-contrib-1.2.0.jar.new': No such file or directory | |
remote-file /opt/clutch_jars/clojure-contrib-1.2.0.jar failed | |
logout | |
:err | |
at clojure.contrib.condition.Condition.fillInStackTrace (:-1) | |
java.lang.Throwable.<init> (Throwable.java:218) | |
clojure.contrib.condition.Condition.<init> (:-1) | |
pallet.execute$remote_sudo_cmd.invoke (execute.clj:126) | |
pallet.execute$execute_ssh_cmds$execute__4519.invoke (execute.clj:157) | |
pallet.resource$eval4415$fn__4416.invoke (resource.clj:344) | |
clojure.lang.MultiFn.invoke (MultiFn.java:175) | |
pallet.resource$execute_commands.invoke (resource.clj:375) | |
pallet.execute$execute_ssh_cmds.invoke (execute.clj:191) | |
pallet.execute$ssh_cmds.invoke (execute.clj:203) | |
pallet.core$execute_with_ssh.invoke (core.clj:261) | |
pallet.core$wrap_with_user_credentials$fn__5182.invoke (core.clj:347) | |
pallet.core$build_commands$fn__5150.invoke (core.clj:293) | |
pallet.core$add_target_keys$fn__5065.invoke (core.clj:139) | |
pallet.core$apply_phase_to_node.invoke (core.clj:303) | |
pallet.core$sequential_apply_phase$iter__5222__5226$fn__5227.invoke (core.clj:405) | |
clojure.lang.LazySeq.sval (LazySeq.java:42) | |
clojure.lang.LazySeq.seq (LazySeq.java:56) | |
clojure.lang.RT.seq (RT.java:450) | |
clojure.core$seq.invoke (core.clj:122) | |
clojure.core$r.invoke (core.clj:793) | |
pallet.core$reduce_phase_results.invoke (core.clj:363) | |
pallet.core$reduce_results$lift_nodes_reduce_result__5206.invoke (core.clj:382) | |
clojure.core$r.invoke (core.clj:799) | |
pallet.core$reduce_results.invoke (core.clj:380) | |
pallet.core$lift_nodes.invoke (core.clj:523) | |
pallet.core$lift_STAR_.invoke (core.clj:540) | |
pallet.core$lift.doInvoke (core.clj:658) | |
clojure.lang.RestFn.applyTo (RestFn.java:140) | |
clojure.core$apply.invoke (core.clj:540) | |
pallet.task.lift$lift.doInvoke (lift.clj:33) | |
clojure.lang.RestFn.invoke (RestFn.java:424) | |
clojure.lang.Var.invoke (Var.java:369) | |
clojure.lang.AFn.applyToHelper (AFn.java:165) | |
clojure.lang.Var.applyTo (Var.java:482) | |
clojure.core$apply.invoke (core.clj:542) | |
pallet.main_invoker$invoke.invoke (main_invoker.clj:77) | |
clojure.lang.Var.invoke (Var.java:390) | |
pallet.main$_main.doInvoke (main.clj:89) | |
clojure.lang.RestFn.applyTo (RestFn.java:138) | |
clojure.core$apply.invoke (core.clj:540) | |
bake.task.pallet$eval7744.invoke (NO_SOURCE_FILE:1) | |
clojure.lang.Compiler.eval (Compiler.java:5424) | |
clojure.lang.Compiler.eval (Compiler.java:5391) | |
clojure.core$eval.invoke (core.clj:2382) | |
cake.server$eval_verbose.invoke (server.clj:72) | |
cake.server$eval_multi$iter__708__712$fn__713$fn__714.invoke (server.clj:83) | |
cake.server$eval_multi$iter__708__712$fn__713.invoke (server.clj:82) | |
clojure.lang.LazySeq.sval (LazySeq.java:42) | |
clojure.lang.LazySeq.seq (LazySeq.java:56) | |
clojure.lang.LazySeq.next (LazySeq.java:85) | |
clojure.lang.RT.next (RT.java:560) | |
clojure.core$next.invoke (core.clj:61) | |
clojure.core$last.invoke (core.clj:228) | |
cake.server$eval_multi.invoke (server.clj:82) | |
bake.core$project_eval.invoke (core.clj:34) | |
cake.server$create$fn__745$fn__752.invoke (server.clj:139) | |
cake.server$create$fn__745.invoke (server.clj:120) | |
cake.utils.server_socket$accept_fn$fn__317$fn__320.invoke (server_socket.clj:39) | |
cake.utils.server_socket$accept_fn$fn__317.invoke (server_socket.clj:38) | |
clojure.lang.AFn.run (AFn.java:24) | |
java.lang.Thread.run (Thread.java:680) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment