cake 0.2.8 → 0.2.9
Sign up to get free protection for your applications and to get access to all the features.
- data/bin/cake +60 -30
- data/lib/bake.jar +0 -0
- data/lib/cake.jar +0 -0
- metadata +4 -4
data/bin/cake
CHANGED
@@ -10,11 +10,12 @@ require 'readline'
|
|
10
10
|
require 'fileutils'
|
11
11
|
require 'pp'
|
12
12
|
|
13
|
+
PATH_SEP = ':'
|
13
14
|
file = File.readlink(__FILE__) rescue __FILE__
|
14
15
|
$bakedir = Dir.getwd
|
15
16
|
$cakedir = File.dirname(File.dirname(file))
|
16
|
-
$confdir = ".cake"
|
17
17
|
$repo = "http://clojars.org/repo/cake/cake"
|
18
|
+
$confdir = ".cake"
|
18
19
|
File.makedirs($confdir)
|
19
20
|
|
20
21
|
def get_cake(version, dest)
|
@@ -58,9 +59,12 @@ def snapshot(version)
|
|
58
59
|
end
|
59
60
|
end
|
60
61
|
|
61
|
-
def extract(jar, file)
|
62
|
-
|
63
|
-
system %{ jar xf #{jar}
|
62
|
+
def extract(jar, file, dest = File.dirname(jar))
|
63
|
+
log(:deps, "extracting #{file} from #{jar}") if verbose?
|
64
|
+
system %{ jar xf #{jar} #{file} }
|
65
|
+
|
66
|
+
File.makedirs(dest)
|
67
|
+
File.move(file, dest)
|
64
68
|
"#{dest}/#{file}"
|
65
69
|
end
|
66
70
|
|
@@ -78,7 +82,7 @@ def parse_opts!
|
|
78
82
|
$opts = {}
|
79
83
|
ARGV.each do |opt|
|
80
84
|
case opt
|
81
|
-
when /^-(\w*)$/ then $1.
|
85
|
+
when /^-(\w*)$/ then $1.split('').each {|c| add_opt!(c, '')}
|
82
86
|
when /^--?([-\w]*)=([-,\w]+)$/ then add_opt!($1, *$2.split(','))
|
83
87
|
when /^--?([-\w]*)$/ then add_opt!($1, "")
|
84
88
|
else add_opt!($command, opt)
|
@@ -114,27 +118,39 @@ def log(command, *message)
|
|
114
118
|
end
|
115
119
|
end
|
116
120
|
|
117
|
-
|
118
|
-
def
|
119
|
-
|
120
|
-
@config = {}
|
121
|
-
File.open(CONFIG_FILE, 'r') do |file|
|
121
|
+
class Config < Hash
|
122
|
+
def initialize(path)
|
123
|
+
File.open(path, 'r') do |file|
|
122
124
|
file.each do |line|
|
125
|
+
next if ['#', '!'].include?(line[0,1])
|
123
126
|
key, value = line.split('=', 2)
|
124
|
-
|
127
|
+
next unless key and value
|
128
|
+
self[key.strip] = value.strip
|
125
129
|
end
|
126
|
-
end if File.exists?(
|
130
|
+
end if File.exists?(path)
|
127
131
|
end
|
128
|
-
|
132
|
+
|
133
|
+
def [](*keys)
|
134
|
+
if keys.first.kind_of?(Symbol)
|
135
|
+
key = keys.join('.') + '.'
|
136
|
+
clone.delete_if {|k,v| not k.index(key) == 0}
|
137
|
+
else
|
138
|
+
super
|
139
|
+
end
|
140
|
+
end
|
141
|
+
end
|
142
|
+
|
143
|
+
def config
|
144
|
+
@config ||= Config.new(".cake/config")
|
129
145
|
end
|
130
146
|
|
131
147
|
class JVM
|
132
148
|
attr_reader :type, :classpath, :libpath, :port, :pid, :pidfile, :start_time
|
133
149
|
|
134
|
-
def initialize(classpath, libpath
|
150
|
+
def initialize(classpath, libpath)
|
135
151
|
@type = self.class.name.downcase
|
136
|
-
@classpath = classpath
|
137
|
-
@libpath = libpath
|
152
|
+
@classpath = make_path(classpath)
|
153
|
+
@libpath = make_path(libpath)
|
138
154
|
@pidfile = "#{$confdir}/#{type}.pid"
|
139
155
|
@start_time = File.exists?(pidfile) ? File.mtime(pidfile) : Time.now
|
140
156
|
|
@@ -149,8 +165,12 @@ class JVM
|
|
149
165
|
not pid.nil?
|
150
166
|
end
|
151
167
|
|
168
|
+
def enabled?
|
169
|
+
true
|
170
|
+
end
|
171
|
+
|
152
172
|
def init
|
153
|
-
reload_stale_files if running?
|
173
|
+
reload_stale_files if enabled? and running?
|
154
174
|
start
|
155
175
|
end
|
156
176
|
|
@@ -191,7 +211,7 @@ class JVM
|
|
191
211
|
MAX_PORT = 2**16
|
192
212
|
|
193
213
|
def start
|
194
|
-
return if running?
|
214
|
+
return if not enabled? or running?
|
195
215
|
@port = rand(MAX_PORT - MIN_PORT) + MIN_PORT
|
196
216
|
log(:start, "starting #{type} jvm on port #{port}") if debug?
|
197
217
|
@pid = daemon %{ java #{java_opts} clojure.main -e "(use '#{type})(start-server #{port})" /dev/null }
|
@@ -227,11 +247,12 @@ class JVM
|
|
227
247
|
|
228
248
|
def files
|
229
249
|
files = []
|
230
|
-
classpath.split(
|
250
|
+
classpath.split(PATH_SEP).uniq.each do |path|
|
231
251
|
if path =~ /(.*)\/\*$/
|
232
252
|
files.concat Dir["#{path}.jar"] << "#{$1}/." # include the directory itself so deletions will be detected
|
233
253
|
else
|
234
254
|
Find.find(path) do |f|
|
255
|
+
Find.prune if f == "#{$bakedir}/src/jvm"
|
235
256
|
files << f if File.exists?(f) and not File.directory?(f)
|
236
257
|
end
|
237
258
|
end
|
@@ -241,6 +262,12 @@ class JVM
|
|
241
262
|
|
242
263
|
private
|
243
264
|
|
265
|
+
def make_path(paths)
|
266
|
+
paths.flatten.compact.collect do |path|
|
267
|
+
path[0,1] == '/' ? path : "#{$bakedir}/#{path}"
|
268
|
+
end.join(PATH_SEP)
|
269
|
+
end
|
270
|
+
|
244
271
|
def inspect(socket)
|
245
272
|
while line = socket.gets
|
246
273
|
puts line
|
@@ -334,6 +361,10 @@ class Bake < JVM
|
|
334
361
|
[ENV['JAVA_OPTS'], config['project.java_opts'], super].compact.join(' ')
|
335
362
|
end
|
336
363
|
|
364
|
+
def enabled?
|
365
|
+
Dir["lib/*.jar"].any?
|
366
|
+
end
|
367
|
+
|
337
368
|
private
|
338
369
|
|
339
370
|
HISTORY_NUM = 500
|
@@ -406,11 +437,12 @@ lib = "#{$cakedir}/lib"
|
|
406
437
|
if File.exists?("#{$cakedir}/.gitignore")
|
407
438
|
if Dir["#{lib}/*.jar"].empty?
|
408
439
|
# In a new git checkout, need to fetch dependencies.
|
409
|
-
version = IO.read("#{$cakedir}/project.clj").first.match(/defproject cake \"(.*)\"/)[1]
|
410
|
-
get_cake(version, lib)
|
440
|
+
version = IO.read("#{$cakedir}/project.clj").split("\n").first.match(/defproject cake \"(.*)\"/)[1]
|
441
|
+
cakejar = get_cake(version, lib)
|
442
|
+
extract(cakejar, "bake-#{version}.jar", "#{lib}/dev")
|
411
443
|
end
|
412
|
-
cakepath = "#{$cakedir}/src
|
413
|
-
bakepath = "#{$cakedir}/bake
|
444
|
+
cakepath = ["#{$cakedir}/src", "#{lib}/*:#{lib}/dev/*"].join(PATH_SEP)
|
445
|
+
bakepath = ["#{$cakedir}/bake", "#{lib}/dev/*"].join(PATH_SEP)
|
414
446
|
else
|
415
447
|
cakejar = "#{lib}/cake.jar"
|
416
448
|
bakejar = "#{lib}/bake.jar"
|
@@ -423,19 +455,17 @@ else
|
|
423
455
|
version = current_version
|
424
456
|
dest = "~/.m2/repository/cake/cake/#{version}"
|
425
457
|
cakepath = get_cake(version, dest)
|
426
|
-
bakepath = extract(
|
458
|
+
bakepath = extract(cakepath, "bake-#{version}.jar")
|
427
459
|
end
|
428
460
|
end
|
429
461
|
|
430
|
-
srcpath = "#{$bakedir}/src:#{$bakedir}/src/clj"
|
431
|
-
|
432
462
|
cake = Cake.new(
|
433
|
-
"
|
434
|
-
"
|
463
|
+
[cakepath, "src", "src/clj", config['cake.classpath'], "lib/dev/*"],
|
464
|
+
[config['cake.library.path'], "lib/dev/native"]
|
435
465
|
)
|
436
466
|
bake = Bake.new(
|
437
|
-
"
|
438
|
-
"
|
467
|
+
[bakepath, "src", "src/clj", "classes", "test", config['project.classpath'], "lib/*", "lib/dev/*"],
|
468
|
+
[config['project.library.path'], "lib/native", "lib/dev/native"]
|
439
469
|
)
|
440
470
|
|
441
471
|
if $command == :kill
|
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
|
- 2
|
9
|
-
-
|
10
|
-
version: 0.2.
|
9
|
+
- 9
|
10
|
+
version: 0.2.9
|
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-06-
|
19
|
+
date: 2010-06-29 00:00:00 -07:00
|
20
20
|
default_executable: cake
|
21
21
|
dependencies: []
|
22
22
|
|