cake 0.3.8 → 0.3.11
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.
- data/bin/cake +48 -22
- data/lib/bake.jar +0 -0
- data/lib/cake.jar +0 -0
- metadata +4 -4
data/bin/cake
CHANGED
@@ -6,9 +6,13 @@ require 'rexml/document'
|
|
6
6
|
require 'socket'
|
7
7
|
require 'timeout'
|
8
8
|
require 'fileutils'
|
9
|
+
require 'io/wait'
|
10
|
+
require 'pp'
|
9
11
|
|
10
|
-
if RUBY_PLATFORM =~ /(mingw|mswin)32$/
|
12
|
+
if RUBY_PLATFORM =~ /(mingw|mswin)(32|64)$/
|
11
13
|
require 'win32/process'
|
14
|
+
TERM = 'BRK'
|
15
|
+
KILL = 'KILL'
|
12
16
|
PATH_SEP = ';'
|
13
17
|
$home = ENV['HOMEDRIVE'] + ENV['HOMEPATH']
|
14
18
|
|
@@ -16,6 +20,8 @@ if RUBY_PLATFORM =~ /(mingw|mswin)32$/
|
|
16
20
|
Process.create(:app_name => cmd).process_id
|
17
21
|
end
|
18
22
|
else
|
23
|
+
TERM = 'TERM'
|
24
|
+
KILL = 'KILL'
|
19
25
|
PATH_SEP = ':'
|
20
26
|
$home = File.expand_path("~")
|
21
27
|
|
@@ -47,11 +53,11 @@ rescue LoadError => e
|
|
47
53
|
end
|
48
54
|
|
49
55
|
class IO
|
50
|
-
def gets_nonblock
|
56
|
+
def gets_nonblock(delim = "\n")
|
51
57
|
line = ""
|
52
58
|
while c = read_nonblock(1)
|
53
59
|
line << c
|
54
|
-
break if c ==
|
60
|
+
break if c == delim
|
55
61
|
end
|
56
62
|
line
|
57
63
|
rescue Errno::EAGAIN, EOFError => e
|
@@ -228,6 +234,10 @@ def config
|
|
228
234
|
@config ||= Configuration.new(".cake/config")
|
229
235
|
end
|
230
236
|
|
237
|
+
def ps
|
238
|
+
`jps -v`.split("\n").select {|l| l =~ /cake\.project/}
|
239
|
+
end
|
240
|
+
|
231
241
|
class JVM
|
232
242
|
attr_reader :type, :classpath, :libpath, :port, :pid, :pidfile, :load_time
|
233
243
|
|
@@ -343,7 +353,7 @@ class JVM
|
|
343
353
|
end
|
344
354
|
|
345
355
|
def kill
|
346
|
-
Process.kill($opts[:"9"] ?
|
356
|
+
Process.kill($opts[:"9"] ? KILL : TERM, pid) if pid
|
347
357
|
end
|
348
358
|
|
349
359
|
def files
|
@@ -452,25 +462,40 @@ private
|
|
452
462
|
end
|
453
463
|
end
|
454
464
|
|
455
|
-
def read_until_prompt(socket)
|
456
|
-
|
457
|
-
|
465
|
+
def read_until_prompt(socket, wait = 0.01, read_timeout = 3)
|
466
|
+
prompt = nil
|
467
|
+
while read_timeout -= wait
|
468
|
+
while socket.wait(wait)
|
458
469
|
line = socket.gets_nonblock
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
470
|
+
if line =~ /^#{REPL_PROMPT}(.*)$/
|
471
|
+
prompt = $1
|
472
|
+
else
|
473
|
+
$stdout.print line
|
474
|
+
$stdout.flush
|
475
|
+
end
|
464
476
|
end
|
477
|
+
break if prompt
|
478
|
+
|
479
|
+
while $stdin.ready?
|
480
|
+
socket.puts($stdin.gets)
|
481
|
+
end if read_timeout <= 0
|
465
482
|
end
|
483
|
+
prompt
|
466
484
|
end
|
467
485
|
|
468
|
-
def
|
469
|
-
return
|
486
|
+
def validate(input)
|
487
|
+
return input if input.empty?
|
470
488
|
with_socket do |socket|
|
471
489
|
socket.write(":validate #{input.join("\n").strip}")
|
472
490
|
socket.close_write # send eof
|
473
|
-
socket.gets
|
491
|
+
results = socket.gets(nil)
|
492
|
+
|
493
|
+
return if results == "incomplete\n"
|
494
|
+
if results == "invalid\n"
|
495
|
+
input.join(' ').strip
|
496
|
+
else
|
497
|
+
results.strip
|
498
|
+
end
|
474
499
|
end
|
475
500
|
end
|
476
501
|
|
@@ -481,9 +506,9 @@ private
|
|
481
506
|
Readline.completion_proc = method(:completions)
|
482
507
|
while line = Readline.readline(prompt)
|
483
508
|
input << line
|
484
|
-
if
|
485
|
-
Readline::HISTORY.push(
|
486
|
-
return
|
509
|
+
if valid_input = validate(input)
|
510
|
+
Readline::HISTORY.push(valid_input)
|
511
|
+
return valid_input
|
487
512
|
end
|
488
513
|
prompt[-2] = ?*
|
489
514
|
end
|
@@ -513,7 +538,8 @@ class Cake < JVM
|
|
513
538
|
def send_command(command, args = [])
|
514
539
|
with_socket do |socket|
|
515
540
|
args = args.collect{|arg| '"' + arg.gsub('"', '\"').gsub("\n", "\\n") + '"'}
|
516
|
-
|
541
|
+
env = command == :run ? ('{' + ENV.collect {|k,v| "#{k.inspect} #{v.inspect}"}.join(' ') + '}') : 'nil'
|
542
|
+
cmd = %{[#{command} [#{args.join(' ')}] #{bakeport || 'nil'} "#{$pwd}" #{env}] "#{READLINE}"}
|
517
543
|
log(command, "sending: " + cmd) if debug?
|
518
544
|
socket.write(cmd)
|
519
545
|
while (line = socket.gets)
|
@@ -606,9 +632,9 @@ bake = Bake.new(
|
|
606
632
|
|
607
633
|
if $command == :kill
|
608
634
|
if $opts[:all]
|
609
|
-
|
635
|
+
ps.each do |line|
|
610
636
|
pid = line.split(' ').first.to_i
|
611
|
-
Process.kill($opts[:"9"] ?
|
637
|
+
Process.kill($opts[:"9"] ? KILL : TERM, pid)
|
612
638
|
end
|
613
639
|
else
|
614
640
|
cake.kill
|
@@ -616,7 +642,7 @@ if $command == :kill
|
|
616
642
|
end
|
617
643
|
exit
|
618
644
|
elsif $command == :ps
|
619
|
-
puts
|
645
|
+
puts ps.sort.reverse
|
620
646
|
exit
|
621
647
|
elsif restart? or config_updated?
|
622
648
|
cake.stop
|
data/lib/bake.jar
CHANGED
Binary file
|
data/lib/cake.jar
CHANGED
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:
|
4
|
+
hash: 5
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 0
|
8
8
|
- 3
|
9
|
-
-
|
10
|
-
version: 0.3.
|
9
|
+
- 11
|
10
|
+
version: 0.3.11
|
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-
|
19
|
+
date: 2010-08-11 00:00:00 -07:00
|
20
20
|
default_executable: cake
|
21
21
|
dependencies: []
|
22
22
|
|