Author: djspiewak
Date: Tue Jun 23 00:08:35 2009
New Revision: 787494
URL: http://svn.apache.org/viewvc?rev=787494&view=rev
Log:
Clojure REPL should be able to load without recompilation on Clojure projects
Modified:
buildr/trunk/lib/buildr/core/shell.rb
buildr/trunk/lib/buildr/shell.rb
Modified: buildr/trunk/lib/buildr/core/shell.rb
URL:
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/core/shell.rb?rev=787494&r1=787493&r2=787494&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/core/shell.rb (original)
+++ buildr/trunk/lib/buildr/core/shell.rb Tue Jun 23 00:08:35 2009
@@ -92,27 +92,44 @@
end
end
+ # don't build if it's *only* Clojure sources
+ def build?
+ !has_source?(:clojure) or has_source?(:java) or has_source?(:scala) or
has_source?(:groovy)
+ end
+
def launch
fail 'Are we forgetting something? CLOJURE_HOME not set.' unless
clojure_home
cp = project.compile.dependencies +
[
- project.path_to(:target, :classes),
+ if build?
+ project.path_to(:target, :classes)
+ else
+ project.path_to(:src, :main, :clojure)
+ end,
File.expand_path('clojure.jar', clojure_home),
'jline:jline:jar:0.9.94'
]
- Java::Commands.java 'jline.ConsoleRunner', 'clojure.lang.Repl', {
- :properties => rebel_props(project),
- :classpath => cp,
- :java_args => rebel_args
- }
+ if build?
+ Java::Commands.java 'jline.ConsoleRunner', 'clojure.lang.Repl', {
+ :properties => rebel_props(project),
+ :classpath => cp,
+ :java_args => rebel_args
+ }
+ else
+ Java::Commands.java 'jline.ConsoleRunner', 'clojure.lang.Repl',
:classpath => cp
+ end
end
private
def clojure_home
@home ||= ENV['CLOJURE_HOME']
end
+
+ def has_source?(lang)
+ File.exists? project.path_to(:src, :main, lang)
+ end
end
end
end
Modified: buildr/trunk/lib/buildr/shell.rb
URL:
http://svn.apache.org/viewvc/buildr/trunk/lib/buildr/shell.rb?rev=787494&r1=787493&r2=787494&view=diff
==============================================================================
--- buildr/trunk/lib/buildr/shell.rb (original)
+++ buildr/trunk/lib/buildr/shell.rb Tue Jun 23 00:08:35 2009
@@ -49,6 +49,10 @@
@project = project
end
+ def build?
+ true
+ end
+
def launch
fail 'Not implemented'
end
@@ -102,9 +106,13 @@
name = p.to_sym
trace "Defining task #{project.name}:shell:#{name}"
- project.task "shell:#{name}" => :compile do
+
+ p_inst = p.new project
+ deps = if p_inst.build? then [:compile] else [] end
+
+ project.task "shell:#{name}" => deps do
trace "Launching #{name} shell"
- p.new(project).launch
+ p_inst.launch
end
end
end