cake 0.4.6 → 0.4.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (4) hide show
  1. data/bin/cake +55 -35
  2. data/lib/bake.jar +0 -0
  3. data/lib/cake.jar +0 -0
  4. metadata +4 -4
data/bin/cake CHANGED
@@ -79,7 +79,7 @@ class IO
79
79
  end
80
80
  input_wait -= interval
81
81
  return if finished
82
-
82
+
83
83
  while input.ready?
84
84
  return if input.eof?
85
85
  write(input.gets)
@@ -178,9 +178,11 @@ def admin_command?
178
178
  [:start, :stop, :reload, :restart].include?($command)
179
179
  end
180
180
 
181
- def log(command, *message)
182
- message.each do |line|
183
- printf("%11s %s\n", "[#{command}]", line)
181
+ def log(command, *messages)
182
+ messages.each do |message|
183
+ message.split("\n").each do |line|
184
+ printf("%11s %s\n", "[#{command}]", line) unless line.empty?
185
+ end
184
186
  end
185
187
  end
186
188
 
@@ -228,23 +230,27 @@ rescue NotImplementedError, Errno::EINVAL
228
230
  file
229
231
  end
230
232
 
233
+ def download(url, path)
234
+ log(:deps, "downloading #{url}")
235
+ open(url) do |remote|
236
+ open(path, "wb") do |local|
237
+ while (buf = remote.read(8192))
238
+ local.write buf
239
+ end
240
+ end
241
+ end
242
+ end
243
+
231
244
  def get_cake(version, dest = nil, opts = {})
232
245
  jar = version =~ /(.*)-SNAPSHOT/ ? "cake-#{$1}-#{snapshot(version)}.jar" : "cake-#{version}.jar"
233
246
  repo = File.expand_path("~/.m2/repository/cake/cake/#{version}")
234
247
  path = "#{repo}/#{jar}"
235
248
 
236
249
  if not File.exists?(path)
237
- log(:deps, "fetching cake libraries. this may take a moment...") unless @logged; @logged = true
238
250
  url = "#{$repo}/#{version}/#{jar}"
239
- log(:deps, "downloading #{url}") if verbose?
251
+ log(:deps, "fetching cake libraries. this may take a moment...") unless @logged; @logged = true
240
252
  FileUtils.makedirs(repo)
241
- open(url) do |jarfile|
242
- open(path, "wb") do |file|
243
- while (buf = jarfile.read(8192))
244
- file.write buf
245
- end
246
- end
247
- end
253
+ download(url, path)
248
254
  end
249
255
  return path unless dest
250
256
 
@@ -260,10 +266,12 @@ rescue OpenURI::HTTPError => e
260
266
  end
261
267
 
262
268
  def current_version
263
- open("#{$repo}/maven-metadata.xml") do |file|
269
+ version = open("#{$repo}/maven-metadata.xml") do |file|
264
270
  doc = REXML::Document.new file
265
271
  doc.elements['metadata'].elements['versioning'].elements['versions'].elements.to_a('version').last.get_text.to_s
266
272
  end
273
+ log(:deps, "most recent clojars version is #{version}") if debug?
274
+ version
267
275
  end
268
276
 
269
277
  def snapshot(version)
@@ -323,7 +331,7 @@ class JVM
323
331
  end
324
332
 
325
333
  def refresh
326
- @pid, @port, @version = IO.read(pidfile).split("\n"); @pid = @pid.to_i; @port = @port.to_i
334
+ @pid, @port, @version = IO.read(pidfile).split("\n"); @pid = @pid.to_i; @port = @port.to_i
327
335
  Process.kill(0, @pid) # make sure pid is valid
328
336
  TCPSocket.new("localhost", @port).close if @port # make sure jvm is running on port
329
337
 
@@ -447,7 +455,7 @@ class JVM
447
455
  else
448
456
  Find.find(path) do |f|
449
457
  Find.prune if f == "#{$bakedir}/src/jvm"
450
- files << f if f =~ /\.(clj|class)$/ and File.exists?(f) and not File.directory?(f)
458
+ files << f if f =~ /\.(clj|class|jar)$/ and File.exists?(f) and not File.directory?(f)
451
459
  end if File.exists?(path)
452
460
  end
453
461
  end
@@ -655,14 +663,16 @@ private
655
663
 
656
664
  def prompt(prompt, opts = {})
657
665
  if opts[:echo] == false
658
- echo_off = system("stty -echo 2&> /dev/null")
666
+ output = `stty -echo 2>&1`
667
+ log($command, output) if verbose?
668
+ echo_off = $?.exitstatus == 0
659
669
  prompt << " (WARNING, input will be visible on console!)" unless echo_off
660
670
  end
661
671
  input = Readline.readline(prompt + ": ") || ''
662
672
  input + "\n"
663
673
  ensure
664
674
  if echo_off
665
- system("stty echo 2&> /dev/null")
675
+ system('stty echo')
666
676
  puts
667
677
  end
668
678
  end
@@ -720,7 +730,14 @@ end
720
730
  # Bootstrap cake dependencies.
721
731
  lib = "#{$cakedir}/lib"
722
732
  if File.exists?("#{$cakedir}/.gitignore") and File.exists?("#{$cakedir}/project.clj")
733
+ log(:cake, "running from git checkout") if verbose?
734
+ if $command == :upgrade
735
+ log(:upgrade, "pulling latest code from git")
736
+ system('git pull')
737
+ end
738
+
723
739
  $version = IO.read("#{$cakedir}/project.clj").split("\n").first.match(/defproject cake \"(.*)\"/)[1]
740
+ log(:deps, "project.clj version is #{$version}") if debug?
724
741
  if Dir["#{lib}/*.jar"].empty? or Dir["#{lib}/dev/*.jar"].empty?
725
742
  # In a new git checkout, need to fetch dependencies.
726
743
  begin
@@ -740,16 +757,26 @@ else
740
757
  bakejar = "#{lib}/bake.jar"
741
758
  if File.exists?(cakejar) and File.exists?(bakejar)
742
759
  # Inside a gem install.
760
+ log(:cake, "running from gem") if verbose?
761
+ if $command == :upgrade
762
+ log(:upgrade, "checking for updates to cake gem")
763
+ system('gem update cake')
764
+ end
765
+
743
766
  $version = File.basename(File.dirname(lib)).split('-')[1]
744
767
  cakepath = cakejar
745
768
  bakepath = bakejar
746
769
  else
747
- # Naked script.
748
- $version = current_version
749
- cakepath = get_cake(version)
750
- bakepath = extract(cakepath, "bake-#{version}.jar")
770
+ # Standalone script.
771
+ log(:cake, "running from standalone script") if verbose?
772
+ download("http://github.com/ninjudd/cake/raw/master/bin/cake", __FILE__) if $command == :upgrade
773
+
774
+ $version = current_version
775
+ cakepath = get_cake($version)
776
+ bakepath = extract(cakepath, "bake-#{$version}.jar")
751
777
  end
752
778
  end
779
+ exec("cake deps") if $command == :upgrade
753
780
 
754
781
  cake = Cake.new(
755
782
  [cakepath, "src", "src/clj", $config['cake.claspath'], "lib/dev/*", "#{$home}/.cake/lib/dev/*"],
@@ -816,21 +843,14 @@ elsif [:start, :reload, :restart].include?($command)
816
843
  end
817
844
  else
818
845
  if $command == :autotest
819
- cake.send_command(:autotest)
820
- interval = $opts[:autotest].last.to_i if $opts[:autotest]
821
- interval = interval || ($config['autotest.interval'].to_i if $config['autotest.interval']) || 1
822
- run_tests = true
823
- ran = false
846
+ cake.send_command(:test)
847
+ interval = ($opts[:interval].first if $opts[:interval]) || $config['autotest.interval'] || 5
824
848
  while true
825
- args = ["--auto"]
826
- if ran == false
827
- args << "--report"
828
- ran = true
829
- end
830
- cake.send_command(:test, args) if run_tests
831
- run_tests = bake.reload
849
+ sleep(interval.to_i)
850
+ cake.send_command(:autotest)
851
+ $stdout.print_flush('.')
852
+ bake.reload
832
853
  cake.reload
833
- sleep(interval)
834
854
  end
835
855
  else
836
856
  cake.send_command($command)
Binary file
Binary file
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cake
3
3
  version: !ruby/object:Gem::Version
4
- hash: 3
4
+ hash: 1
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
8
  - 4
9
- - 6
10
- version: 0.4.6
9
+ - 7
10
+ version: 0.4.7
11
11
  platform: ruby
12
12
  authors:
13
13
  - Justin Balthrop
@@ -16,7 +16,7 @@ autorequire:
16
16
  bindir: bin
17
17
  cert_chain: []
18
18
 
19
- date: 2010-08-23 00:00:00 -07:00
19
+ date: 2010-08-24 00:00:00 -07:00
20
20
  default_executable: cake
21
21
  dependencies: []
22
22