cake 0.2.8 → 0.2.9
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 +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
|
|