lake 0.1.7 → 0.1.8
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/lake +5 -2
- data/lib/lake.rb +36 -8
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e476d8dbf3adbf64bf561556c54086d5a9c21e4d
|
4
|
+
data.tar.gz: af62a61eb0047c736153dda950e4b4154edc7377
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eacd9a888ddc08b0d22cf4c3264800b183a0478855b5d7840de27b3c9dd1c9e0bb7ce9ee67a6c9efe72c8ac3526fcafcc8a3bfac7ab98d63be9013dcd3ecc1f6
|
7
|
+
data.tar.gz: 93348ac50ff4fa98b13b7624ddaf83fd675c2b025905d28d8c12193d9ce0a6422c8918cb0700f41c69d2b9ac11dba35fbe66e873ab6103cb575a6099307b9e43
|
data/bin/lake
CHANGED
@@ -5,7 +5,7 @@ require 'lake'
|
|
5
5
|
|
6
6
|
class Lake::Opts
|
7
7
|
class << self
|
8
|
-
attr_accessor :file,:target,:list,:show
|
8
|
+
attr_accessor :file,:target,:list,:show,:rec_build
|
9
9
|
end
|
10
10
|
end
|
11
11
|
|
@@ -18,6 +18,9 @@ OptionParser.new do |o|
|
|
18
18
|
o.on("-v","--version","Print version and exit"){puts "Lake v #{Lake::VERSION}"; exit}
|
19
19
|
o.on("-h","--help","Print this help"){puts o; exit}
|
20
20
|
o.on("-l","--code","Show code before executing"){Lake::Opts.show=true}
|
21
|
+
o.on("-r","--recursive-build","Build dependencies recursively (Lake <= 0.1.7 compat mode)"){
|
22
|
+
Lake::Opts.rec_build = true
|
23
|
+
}
|
21
24
|
end.parse!
|
22
25
|
|
23
26
|
Lake::Opts.target = ARGV.pop || "all"
|
@@ -42,7 +45,7 @@ if Lake::Opts.list then
|
|
42
45
|
puts "\t"+$targets.keys.select{|e|! $targets[e.to_s].flags[:hidden]}.join("\n\t")
|
43
46
|
else
|
44
47
|
puts "[INFO] Target is #{Lake::Opts.target}"
|
45
|
-
Lake::build_t Lake::Opts.target
|
48
|
+
Lake::build_t Lake::Opts.target, Lake::Opts.rec_build
|
46
49
|
end
|
47
50
|
|
48
51
|
puts "[INFO] Done!"
|
data/lib/lake.rb
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
$targets = {}
|
2
2
|
|
3
3
|
module Lake
|
4
|
-
VERSION='0.1.
|
4
|
+
VERSION='0.1.8'
|
5
5
|
Target = Struct.new(:name,:proc,:deps,:flags) do
|
6
|
-
def build
|
6
|
+
def build(rec=true)
|
7
7
|
if need_build? then
|
8
8
|
puts "[INFO] Building #{name}"
|
9
9
|
deps.each{
|
10
10
|
|e|
|
11
|
-
$targets[e.to_s].build
|
11
|
+
$targets[e.to_s].build if rec or $targets[e.to_s].flags[:unchecked]
|
12
12
|
}
|
13
13
|
proc.call if proc
|
14
14
|
else
|
@@ -35,17 +35,45 @@ module Lake
|
|
35
35
|
end
|
36
36
|
end
|
37
37
|
|
38
|
-
def
|
38
|
+
def calc_deps(t)
|
39
|
+
arr = []
|
40
|
+
puts "[INFO] Calculating dependencies for #{t}"
|
41
|
+
$targets[t.to_s].deps.each do
|
42
|
+
|d|
|
43
|
+
arr << d if $targets[d.to_s].need_build?
|
44
|
+
arr += calc_deps(d)
|
45
|
+
end
|
46
|
+
arr.uniq
|
47
|
+
end
|
48
|
+
|
49
|
+
def build_t(t,rec=false)
|
39
50
|
$targets.each do
|
40
51
|
|k,tr|
|
41
|
-
tr.build if tr.need_build? and tr.flags[:mandatory]
|
52
|
+
tr.build(rec) if tr.need_build? and tr.flags[:mandatory]
|
42
53
|
end
|
43
54
|
|
44
|
-
if
|
45
|
-
$targets[t]
|
55
|
+
if rec then
|
56
|
+
if $targets[t] and not $targets[t].flags[:hidden]
|
57
|
+
$targets[t].build if $targets[t].need_build?
|
58
|
+
else
|
59
|
+
puts "[FATAL] No actions for target #{t}"
|
60
|
+
end
|
46
61
|
else
|
47
|
-
|
62
|
+
deps = calc_deps(t)
|
63
|
+
deps.each{
|
64
|
+
|d|
|
65
|
+
if $targets[d.to_s] then
|
66
|
+
$targets[d.to_s].build rec
|
67
|
+
elsif File.exists? d.to_s then
|
68
|
+
puts "[INFO] File dependency #{d} satisfied"
|
69
|
+
else
|
70
|
+
puts "[FATAL] Cannot satisfy dependency #{d}"
|
71
|
+
end
|
72
|
+
}
|
48
73
|
end
|
74
|
+
|
75
|
+
|
76
|
+
|
49
77
|
end
|
50
78
|
|
51
79
|
def target(name,*deps,&block)
|