Hi Stuart, it might be a good idea to release shell_out.clj in the SVN repository of clojure-contrib.
I have to deal with two versions of the jar file for clojure-contrib if I want to use lancet and preserve what I have deployed right now. My version of clojure is not too far behind yours. Given that I deal with more than a 100 jars, that would simplify my life a bit and make it less confused than it is right now :))) I could at least evaluate the changes between what I have deployed in clojure-contrib and the current state in SVN and then decide what to do. Meanwhile I disabled the rebuild of clojure and clojure-contrib in build.clj to keep your versions of the jar files and I restricted these jars usage to lancet tasks only. Thank you, Luc On Mon, 2009-01-26 at 14:34 -0500, Stuart Halloway wrote: > Lancet is a build DSL written in Clojure, and a sample app in the book > [1]. It combines ant tasks with a Clojure build language, and uses > Chouser's shell-out to implement a system call for jumping to OS level > stuff. > > Lancet's own build script is below. There isn't much in the way of > docs, but if you are interested please take a look at the repos [2]. > Feedback welcomed! > > Stuart > > [1] http://www.pragprog.com/titles/shcloj/programming-clojure > [2] http://github.com/stuarthalloway/lancet/tree/master > > (use 'clojure.contrib.shell-out 'lancet) > > (def clojure-home (or (env :CLOJURE_HOME) "/Users/stuart/repos/ > clojure")) > (def contrib-home (or (env :CLOJURE_CONTRIB_HOME) "/Users/stuart/repos/ > clojure-contrib")) > > (def lib-dir "lib") > (def build-dir "build") > > (deftarget build-clojure "Build Clojure from source" > (with-sh-dir clojure-home > (system "git svn rebase") > (system "ant jar"))) > > (deftarget build-contrib "Build Contrib from source" > (with-sh-dir contrib-home > (system "git svn rebase") > (system "ant clean jar"))) > > (deftarget init "Prepare for build" > (mkdir {:dir lib-dir}) > (mkdir {:dir build-dir})) > > (deftarget build-dependencies "Build dependent libraries" > (init) > (build-clojure) > (build-contrib) > (copy {:file (str clojure-home "/clojure.jar") > :todir lib-dir}) > (copy {:file (str contrib-home "/clojure-contrib.jar") > :todir lib-dir})) > > (deftarget compile-lancet "compile lancet" > (init) > (system (str "java -Dclojure.compile.path=" > build-dir > " -cp lib/ant.jar:lib/ant-launcher.jar:lib/clojure.jar:lib/ > clojure-contrib.jar:build:. clojure.lang.Compile lancet"))) > > (deftarget create-jar "jar up lancet" > (init) > (unjar {:src (str lib-dir "/clojure.jar") > :dest build-dir}) > (unjar {:src (str lib-dir "/clojure-contrib.jar") > :dest build-dir}) > (unjar {:src (str lib-dir "/ant.jar") > :dest build-dir}) > (unjar {:src (str lib-dir "/ant-launcher.jar") > :dest build-dir}) > (compile-lancet) > (jar {:jarfile (str lib-dir "/lancet.jar") > :basedir "build" > :manifest "MANIFEST.MF"})) > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---