lake 0.1.7 → 0.1.8
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.
- 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)
|