bake-toolkit 2.44.1 → 2.45.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 63594dff72adc9e2399d3e5b3e61c10cfa428937
4
- data.tar.gz: b5ac0b63c555016846e26bb62db52e609d70db63
3
+ metadata.gz: 400957c27fbeb739bd5336401fa1b035bccd52bd
4
+ data.tar.gz: c201d3549f44eebacb2cb4e2025e45195e5e58d1
5
5
  SHA512:
6
- metadata.gz: 75df6bc8056a67e5250a0600149f9fcd356d86a51c20ecf0868f266062f918d0b8738d5703f8e4f506a6d4013174bc4fac0aaf7de53886200e863ccb01780646
7
- data.tar.gz: d728f32ae07a50f727d93b8c9842c2d43c0bf2460d78908cc3abb370d69c8d25e687ab0ce1e0fb2f7a1b27aaa2c1cf76016dac171cfd98ccd41712e970e989d0
6
+ metadata.gz: 6501c573bfc1abf80ac5fc735a6471f845c46e8ad43b55a7aae46c7a0d28b37256311e2c310b7ef84248e90e7b54c3ebe0bb681e8674a79b1efa9f8cb90d3301
7
+ data.tar.gz: 6c1e2c956d311b80e79c14321acd3a57f1449cd5c971989fb9e5e8fb12f732e077fa3a1cb30c15060879906d359cf3360a5c35c0609bdedab1878239f1e7a323
data/bin/bakery CHANGED
@@ -1,183 +1,183 @@
1
- #!/usr/bin/env ruby
2
-
3
- $timeStart = Time.now
4
-
5
- $:.unshift(File.dirname(__FILE__)+"/../lib")
6
- require 'common/version'
7
-
8
- require 'common/utils'
9
-
10
- Bake::Version.printBakeryVersion
11
-
12
- STDOUT.sync = true
13
- STDERR.sync = true
14
-
15
- $stars = "************************************************"
16
-
17
- require 'bake/toolchain/colorizing_formatter'
18
- require 'bake/options/options'
19
- require 'tocxx'
20
- require "bakery/model/loader"
21
- require "bakery/options/options"
22
- require "bakery/toBake"
23
- require "bakery/buildPattern"
24
- require 'common/ext/stdout'
25
- require 'common/cleanup'
26
-
27
- module Bake
28
-
29
- @options = BakeryOptions.new(ARGV)
30
- bakeOptions = Options.new([])
31
- @options.parse_options(bakeOptions)
32
-
33
- env = nil
34
- begin
35
- loader = BakeryLoader.new
36
- env = loader.load(@options.collection_dir+"/Collection.meta")
37
- rescue SystemExit => e
38
- raise e
39
- rescue Exception => e
40
- puts e
41
- puts e.backtrace
42
- ExitHelper.exit(1)
43
- end
44
-
45
-
46
- if @options.collection_name.empty?
47
- puts "Please specify a collection name. Possible values are:"
48
- env.find(:class => BakeryModel::Collection).each { |e|
49
- puts "* " + e.name
50
- }
51
- ExitHelper.exit(0)
52
- end
53
-
54
-
55
- def self.getCollections(env, name)
56
- cols = env.find(:class => BakeryModel::Collection, :name => name)
57
- @toBuild |= getBuildPattern(cols, name)
58
- @colsAll |= cols
59
- cols[0].collections.each do |cRef|
60
- alreadyProcessed = false
61
- @colsAll.each do |ca|
62
- alreadyProcessed = true if ca.name == cRef.name
63
- end
64
- getCollections(env, cRef.name) unless alreadyProcessed
65
- end
66
- end
67
-
68
- @toBuild = []
69
- @colsAll = []
70
- getCollections(env, @options.collection_name)
71
-
72
- maxRuns = @toBuild.length
73
- currentRun = 0
74
- failedRuns = []
75
-
76
- passedParams = []
77
- excludeParam = false
78
- wasMinus = false
79
- ARGV.each do |x|
80
- if (x=="-b" or x=="-m" or x=="--socket")
81
- excludeParam = true
82
- next
83
- end
84
- if excludeParam
85
- excludeParam = false
86
- next
87
- end
88
- if x.length > 0
89
- if x[0] == "-"
90
- wasMinus = true
91
- else
92
- next if not wasMinus
93
- wasMinus = false
94
- end
95
- end
96
- passedParams << x
97
- end
98
-
99
- if @options.socket != 0
100
- Bake::IDEInterface.instance.connect(@options.socket)
101
- end
102
-
103
- msg1 = "bakery "
104
-
105
- exitValue = 0
106
- abort = false
107
- @toBuild.each do |bp|
108
- currentRun += 1
109
- p = File.dirname(bp.proj)
110
- pRel = File.rel_from_to_project(Dir.pwd, p, false)
111
- pRel = "." if pRel.empty?
112
- cmd = (["-m", pRel, "-b", bp.conf] + passedParams)
113
- cmdWithNum = "bakery #{currentRun} of #{maxRuns}: bake " + cmd.join(" ")
114
- puts "\n#{$stars}"
115
- Bake.formatter.printInfo(cmdWithNum)
116
- puts $stars
117
-
118
-
119
- runOk = false
120
- begin
121
- Bake.options = Options.new(cmd)
122
- Bake.options.parse_options
123
- tocxx = ToCxx.new
124
- tocxx.doit()
125
- runOk = (ExitHelper.exit_code == 0)
126
- if Bake::IDEInterface.instance.get_abort
127
- abort = true
128
- msg1 << "aborted"
129
- exitValue = 1
130
- break
131
- end
132
- rescue SystemExit
133
- runOk = (ExitHelper.exit_code == 0)
134
- rescue Exception => e
135
- puts e.message
136
- end
137
-
138
- Bake::cleanup
139
- ExitHelper.reset_exit_code
140
-
141
- if runOk == false && abort == false
142
- exitValue = 1
143
- failedRuns << "bake " + cmd.join(" ")
144
- if @options.error
145
- msg1 << "stopped on first error"
146
- abort = true
147
- break
148
- end
149
- end
150
- end
151
-
152
- print "\n"
153
-
154
- if not abort
155
- if failedRuns.length > 0
156
- msg1 << "summary: #{failedRuns.length} of #{maxRuns} builds failed"
157
- else
158
- msg1 << "summary: #{maxRuns} of #{maxRuns} builds ok"
159
- end
160
-
161
- timeEnd = Time.now
162
- timeDiff = timeEnd - $timeStart
163
- failedRuns.each_with_index do |f,i|
164
- msg1 << "\n#{i+1}: #{f}"
165
- end
166
- msg1 << "\ntime: %02d:%02d minutes" % [timeDiff/60, timeDiff%60]
167
- end
168
-
169
- if failedRuns.length == 0
170
- Bake.formatter.printSuccess($stars)
171
- Bake.formatter.printSuccess(msg1)
172
- Bake.formatter.printSuccess($stars)
173
- else
174
- Bake.formatter.printError($stars)
175
- Bake.formatter.printError(msg1)
176
- Bake.formatter.printError($stars)
177
- end
178
-
179
- Bake::IDEInterface.instance.disconnect()
180
-
181
- ExitHelper.exit(exitValue)
182
- end
183
-
1
+ #!/usr/bin/env ruby
2
+
3
+ $timeStart = Time.now
4
+
5
+ $:.unshift(File.dirname(__FILE__)+"/../lib")
6
+ require 'common/version'
7
+
8
+ require 'common/utils'
9
+
10
+ Bake::Version.printBakeryVersion
11
+
12
+ STDOUT.sync = true
13
+ STDERR.sync = true
14
+
15
+ $stars = "************************************************"
16
+
17
+ require 'bake/toolchain/colorizing_formatter'
18
+ require 'bake/options/options'
19
+ require 'tocxx'
20
+ require "bakery/model/loader"
21
+ require "bakery/options/options"
22
+ require "bakery/toBake"
23
+ require "bakery/buildPattern"
24
+ require 'common/ext/stdout'
25
+ require 'common/cleanup'
26
+
27
+ module Bake
28
+
29
+ @options = BakeryOptions.new(ARGV)
30
+ bakeOptions = Options.new([])
31
+ @options.parse_options(bakeOptions)
32
+
33
+ env = nil
34
+ begin
35
+ loader = BakeryLoader.new
36
+ env = loader.load(@options.collection_dir+"/Collection.meta")
37
+ rescue SystemExit => e
38
+ raise e
39
+ rescue Exception => e
40
+ puts e
41
+ puts e.backtrace
42
+ ExitHelper.exit(1)
43
+ end
44
+
45
+
46
+ if @options.collection_name.empty?
47
+ puts "Please specify a collection name. Possible values are:"
48
+ env.find(:class => BakeryModel::Collection).each { |e|
49
+ puts "* " + e.name
50
+ }
51
+ ExitHelper.exit(0)
52
+ end
53
+
54
+
55
+ def self.getCollections(env, name)
56
+ cols = env.find(:class => BakeryModel::Collection, :name => name)
57
+ @toBuild |= getBuildPattern(cols, name)
58
+ @colsAll |= cols
59
+ cols[0].collections.each do |cRef|
60
+ alreadyProcessed = false
61
+ @colsAll.each do |ca|
62
+ alreadyProcessed = true if ca.name == cRef.name
63
+ end
64
+ getCollections(env, cRef.name) unless alreadyProcessed
65
+ end
66
+ end
67
+
68
+ @toBuild = []
69
+ @colsAll = []
70
+ getCollections(env, @options.collection_name)
71
+
72
+ maxRuns = @toBuild.length
73
+ currentRun = 0
74
+ failedRuns = []
75
+
76
+ passedParams = []
77
+ excludeParam = false
78
+ wasMinus = false
79
+ ARGV.each do |x|
80
+ if (x=="-b" or x=="-m" or x=="--socket")
81
+ excludeParam = true
82
+ next
83
+ end
84
+ if excludeParam
85
+ excludeParam = false
86
+ next
87
+ end
88
+ if x.length > 0
89
+ if x[0] == "-"
90
+ wasMinus = true
91
+ else
92
+ next if not wasMinus
93
+ wasMinus = false
94
+ end
95
+ end
96
+ passedParams << x
97
+ end
98
+
99
+ if @options.socket != 0
100
+ Bake::IDEInterface.instance.connect(@options.socket)
101
+ end
102
+
103
+ msg1 = "bakery "
104
+
105
+ exitValue = 0
106
+ abort = false
107
+ @toBuild.each do |bp|
108
+ currentRun += 1
109
+ p = File.dirname(bp.proj)
110
+ pRel = File.rel_from_to_project(Dir.pwd, p, false)
111
+ pRel = "." if pRel.empty?
112
+ cmd = (["-m", pRel, "-b", bp.conf] + bp.args.split + passedParams)
113
+ cmdWithNum = "bakery #{currentRun} of #{maxRuns}: bake " + cmd.join(" ")
114
+ puts "\n#{$stars}"
115
+ Bake.formatter.printInfo(cmdWithNum)
116
+ puts $stars
117
+
118
+
119
+ runOk = false
120
+ begin
121
+ Bake.options = Options.new(cmd)
122
+ Bake.options.parse_options
123
+ tocxx = ToCxx.new
124
+ tocxx.doit()
125
+ runOk = (ExitHelper.exit_code == 0)
126
+ if Bake::IDEInterface.instance.get_abort
127
+ abort = true
128
+ msg1 << "aborted"
129
+ exitValue = 1
130
+ break
131
+ end
132
+ rescue SystemExit
133
+ runOk = (ExitHelper.exit_code == 0)
134
+ rescue Exception => e
135
+ puts e.message
136
+ end
137
+
138
+ Bake::cleanup
139
+ ExitHelper.reset_exit_code
140
+
141
+ if runOk == false && abort == false
142
+ exitValue = 1
143
+ failedRuns << "bake " + cmd.join(" ")
144
+ if @options.error
145
+ msg1 << "stopped on first error"
146
+ abort = true
147
+ break
148
+ end
149
+ end
150
+ end
151
+
152
+ print "\n"
153
+
154
+ if not abort
155
+ if failedRuns.length > 0
156
+ msg1 << "summary: #{failedRuns.length} of #{maxRuns} builds failed"
157
+ else
158
+ msg1 << "summary: #{maxRuns} of #{maxRuns} builds ok"
159
+ end
160
+
161
+ timeEnd = Time.now
162
+ timeDiff = timeEnd - $timeStart
163
+ failedRuns.each_with_index do |f,i|
164
+ msg1 << "\n#{i+1}: #{f}"
165
+ end
166
+ msg1 << "\ntime: %02d:%02d minutes" % [timeDiff/60, timeDiff%60]
167
+ end
168
+
169
+ if failedRuns.length == 0
170
+ Bake.formatter.printSuccess($stars)
171
+ Bake.formatter.printSuccess(msg1)
172
+ Bake.formatter.printSuccess($stars)
173
+ else
174
+ Bake.formatter.printError($stars)
175
+ Bake.formatter.printError(msg1)
176
+ Bake.formatter.printError($stars)
177
+ end
178
+
179
+ Bake::IDEInterface.instance.disconnect()
180
+
181
+ ExitHelper.exit(exitValue)
182
+ end
183
+
@@ -71,6 +71,39 @@ module Bake
71
71
  def chooseProjectFilenames(potentialAdapts)
72
72
  @@filenames = []
73
73
  Bake.options.adapt.each do |a|
74
+ a.gsub!(/\\/,"/")
75
+ found = false
76
+
77
+ # from working dir
78
+ if File.exist?(a) && File.file?(a)
79
+ @@filenames << File.expand_path(a)
80
+ found = true
81
+ end
82
+ next if found
83
+
84
+ # from main dir
85
+ Dir.chdir Bake.options.main_dir do
86
+ if File.exist?(a) && File.file?(a)
87
+ @@filenames << (Bake.options.main_dir + "/" + a)
88
+ found = true
89
+ end
90
+ end
91
+ next if found
92
+
93
+ # from roots
94
+ Bake.options.roots.each do |root|
95
+ r = root.dir
96
+ Dir.chdir r do
97
+ if File.exist?(a) && File.file?(a)
98
+ @@filenames << (r + "/" + a)
99
+ found = true
100
+ end
101
+ end
102
+ break if found
103
+ end
104
+ next if found
105
+
106
+ # old style
74
107
  adapts = potentialAdapts.find_all { |p| p.include?("/"+a+"/Adapt.meta") or p == a+"/Adapt.meta" }
75
108
  if adapts.empty?
76
109
  Bake.formatter.printError("Adaption project #{a} not found")
@@ -102,9 +102,9 @@ module Bake
102
102
  else
103
103
  cmd_result = false
104
104
  consoleOutput = ""
105
+ cmd = [substString(s.cmd, s)]
105
106
  begin
106
107
  Dir.chdir(@@projDir) do
107
- cmd = [substString(s.cmd, s)]
108
108
  cmd_result, consoleOutput = ProcessHelper.run(cmd)
109
109
  @@userVarMap[s.name] = consoleOutput.chomp
110
110
  if s.env
@@ -116,12 +116,8 @@ module Bake
116
116
  consoleOutput = e.message
117
117
  end
118
118
  if (cmd_result == false)
119
- Bake.formatter.printWarning("Command not successful, variable #{s.name} will be set to \"\" (#{consoleOutput.chomp}).", s)
120
- @@userVarMap[s.name] = ""
121
- if s.env
122
- ENV[s.name] = ""
123
- config.setEnvVar(s.name, "")
124
- end
119
+ Bake.formatter.printError("Command not successful: #{cmd.join(" ")}", s)
120
+ ExitHelper.exit(1)
125
121
  end
126
122
  end
127
123
 
@@ -1,24 +1,25 @@
1
- module Bake
2
-
3
- class BuildPattern
4
- attr_reader :proj, :conf, :coll_p
5
- def initialize(proj, conf, coll_p)
6
- @proj = proj
7
- @conf = conf
8
- @coll_p = coll_p
9
- end
10
- def getId
11
- proj + "*******" + conf
12
- end
13
- def hash
14
- getId.hash
15
- end
16
- def eql?(comparee)
17
- self == comparee
18
- end
19
- def ==(comparee)
20
- self.getId == comparee.getId
21
- end
22
- end
23
-
24
- end
1
+ module Bake
2
+
3
+ class BuildPattern
4
+ attr_reader :proj, :conf, :args, :coll_p
5
+ def initialize(proj, conf, args, coll_p)
6
+ @proj = proj
7
+ @conf = conf
8
+ @args = args
9
+ @coll_p = coll_p
10
+ end
11
+ def getId
12
+ proj + "*******" + conf
13
+ end
14
+ def hash
15
+ getId.hash
16
+ end
17
+ def eql?(comparee)
18
+ self == comparee
19
+ end
20
+ def ==(comparee)
21
+ self.getId == comparee.getId
22
+ end
23
+ end
24
+
25
+ end
@@ -1,48 +1,49 @@
1
- require 'rgen/metamodel_builder'
2
- require 'rgen/metamodel_builder/data_types'
3
-
4
- module Bake
5
-
6
- module BakeryModel
7
- extend RGen::MetamodelBuilder::ModuleExtension
8
-
9
- class ModelElement < RGen::MetamodelBuilder::MMBase
10
- abstract
11
- has_attr 'line_number', Integer do
12
- annotation :details => {'internal' => 'true'}
13
- end
14
- has_attr 'file_name', String do
15
- annotation :details => {'internal' => 'true'}
16
- end
17
- end
18
-
19
- class Project < ModelElement
20
- has_attr 'name', String, :defaultValueLiteral => ""
21
- has_attr 'config', String, :defaultValueLiteral => ""
22
- end
23
- class Exclude < ModelElement
24
- has_attr 'name', String, :defaultValueLiteral => ""
25
- has_attr 'config', String, :defaultValueLiteral => ""
26
- end
27
- class SubCollection < ModelElement
28
- has_attr 'name', String, :defaultValueLiteral => ""
29
- end
30
- class Collection < ModelElement
31
- has_attr 'name', String, :defaultValueLiteral => ""
32
- contains_many 'project', Project, 'collection'
33
- contains_many 'exclude', Exclude, 'collection'
34
- contains_many 'collections', SubCollection, 'collection'
35
- end
36
-
37
- module Project::ClassModule
38
- def isFound
39
- @isFound ||= false
40
- end
41
- def found
42
- @isFound = true
43
- end
44
- end
45
-
46
- end
47
-
48
- end
1
+ require 'rgen/metamodel_builder'
2
+ require 'rgen/metamodel_builder/data_types'
3
+
4
+ module Bake
5
+
6
+ module BakeryModel
7
+ extend RGen::MetamodelBuilder::ModuleExtension
8
+
9
+ class ModelElement < RGen::MetamodelBuilder::MMBase
10
+ abstract
11
+ has_attr 'line_number', Integer do
12
+ annotation :details => {'internal' => 'true'}
13
+ end
14
+ has_attr 'file_name', String do
15
+ annotation :details => {'internal' => 'true'}
16
+ end
17
+ end
18
+
19
+ class Project < ModelElement
20
+ has_attr 'name', String, :defaultValueLiteral => ""
21
+ has_attr 'config', String, :defaultValueLiteral => ""
22
+ has_attr 'args', String, :defaultValueLiteral => ""
23
+ end
24
+ class Exclude < ModelElement
25
+ has_attr 'name', String, :defaultValueLiteral => ""
26
+ has_attr 'config', String, :defaultValueLiteral => ""
27
+ end
28
+ class SubCollection < ModelElement
29
+ has_attr 'name', String, :defaultValueLiteral => ""
30
+ end
31
+ class Collection < ModelElement
32
+ has_attr 'name', String, :defaultValueLiteral => ""
33
+ contains_many 'project', Project, 'collection'
34
+ contains_many 'exclude', Exclude, 'collection'
35
+ contains_many 'collections', SubCollection, 'collection'
36
+ end
37
+
38
+ module Project::ClassModule
39
+ def isFound
40
+ @isFound ||= false
41
+ end
42
+ def found
43
+ @isFound = true
44
+ end
45
+ end
46
+
47
+ end
48
+
49
+ end
@@ -1,76 +1,76 @@
1
- require "bakery/buildPattern"
2
-
3
- module Bake
4
-
5
- def self.getBuildPattern(cols, name)
6
-
7
- colMeta = @options.collection_dir+"/Collection.meta"
8
-
9
- if (cols.length == 0)
10
- Bake.formatter.printError("Collection #{name} not found", colMeta)
11
- ExitHelper.exit(1)
12
- elsif (cols.length > 1)
13
- Bake.formatter.printError("Collection #{name} found more than once", colMeta)
14
- ExitHelper.exit(1)
15
- end
16
-
17
- col = cols[0]
18
-
19
- col.project.each do |p|
20
- if p.name == ""
21
- Bake.formatter.printError("Project name empty", p)
22
- ExitHelper.exit(1)
23
- end
24
- if p.config == ""
25
- Bake.formatter.printError("Config name empty", p)
26
- ExitHelper.exit(1)
27
- end
28
- end
29
-
30
- toBuildPattern = []
31
- @options.roots.each do |root|
32
- col.project.each do |p|
33
- projs = Root.search_to_depth(root.dir,p.name + "/Project.meta", root.depth)
34
- if projs.length == 0
35
- toBuildPattern << BuildPattern.new(nil, nil, p) # remember it for sorted info printout
36
- end
37
- projs.each do |f|
38
- toBuildPattern << BuildPattern.new(f, "^"+p.config.gsub("*","(\\w*)")+"$", p)
39
- end
40
- end
41
- end
42
-
43
- toBuild = []
44
- toBuildPattern.each do |bp|
45
- next unless bp.proj
46
- contents = File.open(bp.proj, "r") {|io| io.read }
47
- contents.split("\n").each do |c|
48
- res = c.match("\\s*(Library|Executable|Custom){1}Config\\s*(\\w*)")
49
- if res
50
- if res[2].match(bp.conf) != nil
51
- toBuild << BuildPattern.new(bp.proj, res[2], nil)
52
- bp.coll_p.found
53
- end
54
- end
55
- end
56
- end
57
-
58
- col.exclude.each do |p|
59
- p.name = "/"+p.name.gsub("*","(\\w*)")+"/Project.meta"
60
- p.config = "^"+p.config.gsub("*","(\\w*)")+"$"
61
- end
62
-
63
- toBuild.delete_if do |bp|
64
- exclude = false
65
- col.exclude.each do |p|
66
- exclude = true if (bp.proj.match(p.name) != nil and bp.conf.match(p.config) != nil)
67
- end
68
- exclude
69
- end
70
-
71
- toBuild.uniq!
72
-
73
- return toBuild
74
- end
75
-
76
- end
1
+ require "bakery/buildPattern"
2
+
3
+ module Bake
4
+
5
+ def self.getBuildPattern(cols, name)
6
+
7
+ colMeta = @options.collection_dir+"/Collection.meta"
8
+
9
+ if (cols.length == 0)
10
+ Bake.formatter.printError("Collection #{name} not found", colMeta)
11
+ ExitHelper.exit(1)
12
+ elsif (cols.length > 1)
13
+ Bake.formatter.printError("Collection #{name} found more than once", colMeta)
14
+ ExitHelper.exit(1)
15
+ end
16
+
17
+ col = cols[0]
18
+
19
+ col.project.each do |p|
20
+ if p.name == ""
21
+ Bake.formatter.printError("Project name empty", p)
22
+ ExitHelper.exit(1)
23
+ end
24
+ if p.config == ""
25
+ Bake.formatter.printError("Config name empty", p)
26
+ ExitHelper.exit(1)
27
+ end
28
+ end
29
+
30
+ toBuildPattern = []
31
+ @options.roots.each do |root|
32
+ col.project.each do |p|
33
+ projs = Root.search_to_depth(root.dir,p.name + "/Project.meta", root.depth)
34
+ if projs.length == 0
35
+ toBuildPattern << BuildPattern.new(nil, nil, p.args, p) # remember it for sorted info printout
36
+ end
37
+ projs.each do |f|
38
+ toBuildPattern << BuildPattern.new(f, "^"+p.config.gsub("*","(\\w*)")+"$", p.args, p)
39
+ end
40
+ end
41
+ end
42
+
43
+ toBuild = []
44
+ toBuildPattern.each do |bp|
45
+ next unless bp.proj
46
+ contents = File.open(bp.proj, "r") {|io| io.read }
47
+ contents.split("\n").each do |c|
48
+ res = c.match("\\s*(Library|Executable|Custom){1}Config\\s*\"?([\\w:-]*)\"?")
49
+ if res
50
+ if res[2].match(bp.conf) != nil
51
+ toBuild << BuildPattern.new(bp.proj, res[2], bp.args, nil)
52
+ bp.coll_p.found
53
+ end
54
+ end
55
+ end
56
+ end
57
+
58
+ col.exclude.each do |p|
59
+ p.name = "/"+p.name.gsub("*","(\\w*)")+"/Project.meta"
60
+ p.config = "^"+p.config.gsub("*","(\\w*)")+"$"
61
+ end
62
+
63
+ toBuild.delete_if do |bp|
64
+ exclude = false
65
+ col.exclude.each do |p|
66
+ exclude = true if (bp.proj.match(p.name) != nil and bp.conf.match(p.config) != nil)
67
+ end
68
+ exclude
69
+ end
70
+
71
+ toBuild.uniq!
72
+
73
+ return toBuild
74
+ end
75
+
76
+ end
@@ -1,6 +1,10 @@
1
1
  module Bake
2
2
 
3
3
  def self.findDirOfFileToRoot(dir, filename)
4
+ if !File.exists?(dir)
5
+ Bake.formatter.printError("Error: #{dir} does not exist")
6
+ ExitHelper.exit(1)
7
+ end
4
8
  loop do
5
9
  completeName = dir + "/" + filename
6
10
  return dir if File.exist?(completeName)
@@ -1,7 +1,7 @@
1
1
  module Bake
2
2
  class Version
3
3
  def self.number
4
- "2.44.1"
4
+ "2.45.0"
5
5
  end
6
6
 
7
7
  def self.printBakeVersion(ry = "")
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bake-toolkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.44.1
4
+ version: 2.45.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Alexander Schaal
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-03-22 00:00:00.000000000 Z
11
+ date: 2018-05-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rtext