lake 0.1.7 → 0.1.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/bin/lake +5 -2
  3. data/lib/lake.rb +36 -8
  4. metadata +1 -1
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 38f6e28729daf5c8b2ac05938c4ee3cd475bcf65
4
- data.tar.gz: 949986028082aa4a48e85cc6078d54fa0cfe456b
3
+ metadata.gz: e476d8dbf3adbf64bf561556c54086d5a9c21e4d
4
+ data.tar.gz: af62a61eb0047c736153dda950e4b4154edc7377
5
5
  SHA512:
6
- metadata.gz: b75455b81042197b91d8bd23e0175279b32d3e86709dc696ee32dfcfdeee0f0a1d73292d2ea1356c806c96f1ab4bfe7db374acf994e4776394d98190e4f8231d
7
- data.tar.gz: f12127eb1e18d715df11eed4bad1a245b399f31e794c75491aa92dba8f15b1e94c97e105c0e7cebaa873eeb54ee0e0f7e72ada84be8cdac4cef064d4f6c8e871
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.7'
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 build_t(t)
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 $targets[t] and not $targets[t].flags[:hidden]
45
- $targets[t].build if $targets[t].need_build?
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
- puts "[FATAL] No actions for target #{t}"
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)
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: lake
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.7
4
+ version: 0.1.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Stepan unn4m3d Melnikov