bakeConv 1.3.0 → 1.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/Bake.rb +0 -1
- data/lib/ConfigParser.rb +11 -16
- data/lib/Converter.rb +32 -11
- data/lib/File_ext.rb +1 -1
- data/lib/Filter.rb +9 -21
- data/lib/PathAdapt.rb +10 -3
- data/lib/Util.rb +2 -1
- data/lib/Version.rb +1 -1
- data/lib/bakeConverter.rb +19 -12
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a564dfac3eb6816f428188a0ab0b3674be29d392
|
4
|
+
data.tar.gz: fe91e06eb189d0399d00f7cbad600b3374a0d4ba
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 50d3805099bb35d0095317ef413611f13002309950759e412db711948ccbe2c2a55209ceb23382687a2f815b868c6132a53cba713540a03445521ad378b41717
|
7
|
+
data.tar.gz: 53ecea82597d2200b8cd72ca90f6d9a014229d08d64585c82249d5cff185558e673edc6c8fedf66a0c4c16294305e50875ae9e077e7dacc9246cc540f087262e
|
data/lib/Bake.rb
CHANGED
data/lib/ConfigParser.rb
CHANGED
@@ -26,10 +26,13 @@ module BConv
|
|
26
26
|
while(line = l.gets) != nil
|
27
27
|
line.gsub!('\\','/')
|
28
28
|
ar = line.split("=")
|
29
|
+
|
29
30
|
if (ar.length == 2)
|
30
|
-
|
31
|
-
|
32
|
-
|
31
|
+
if ar[0].strip[0] != "#"
|
32
|
+
comPos = ar[1].index("#")
|
33
|
+
ar[1] = ar[1][0..comPos-1] if comPos != nil
|
34
|
+
mapping.store(ar[0].strip,ar[1].strip)
|
35
|
+
end
|
33
36
|
elsif ar[1] == ""
|
34
37
|
mapping.store(ar[0].strip,"")
|
35
38
|
end
|
@@ -39,27 +42,19 @@ module BConv
|
|
39
42
|
raise "Error: MainProj parameter from Mapping in line #{lineNumber} is missing!" if mapping.has_key?('MainProj') == false
|
40
43
|
raise "Error: BuildConfig parameter from Mapping in line #{lineNumber} is missing!" if mapping.has_key?('BuildConfig') == false
|
41
44
|
raise "Error: Proj2Convert parameter from Mapping in line #{lineNumber} is missing!" if mapping.has_key?('Proj2Convert') == false
|
42
|
-
raise "Error:
|
45
|
+
raise "Error: OutputFile parameter from Mapping in line #{lineNumber} is missing!" if mapping.has_key?('OutputFile') == false
|
43
46
|
raise "Error: TemplateFile parameter from Mapping in line #{lineNumber} is missing!" if mapping.has_key?('TemplateFile') == false
|
44
47
|
|
48
|
+
#raise "Error: Parameter in #{File.basename(@filename)}, Mapping line #{lineNumber} is missing!" if ar[0].strip == ""
|
49
|
+
|
45
50
|
if @projToConvert != "" && @projToConvert != mapping['Proj2Convert']
|
46
51
|
mapping = {}
|
47
52
|
else
|
48
53
|
mappings << mapping
|
49
54
|
end
|
50
|
-
|
51
|
-
# if @projToConvert.length != 0
|
52
|
-
# @projToConvert.each do |val|
|
53
|
-
# if val == mapping['Proj2Convert']
|
54
|
-
# mappings << mapping
|
55
|
-
# end
|
56
|
-
# end
|
57
|
-
# else
|
58
|
-
# mappings << mapping
|
59
|
-
# end
|
60
|
-
|
61
55
|
setEndLabel = true
|
62
56
|
break
|
57
|
+
|
63
58
|
elsif line.include?("Mapping")
|
64
59
|
raise "Error: end label } from Mapping in line #{lineNumber} is missing!"
|
65
60
|
end
|
@@ -70,7 +65,7 @@ module BConv
|
|
70
65
|
raise "Error: Mapping keyword in front of line #{lineNumber} is missing?"
|
71
66
|
end
|
72
67
|
end
|
73
|
-
return mappings
|
68
|
+
return 0, mappings
|
74
69
|
end
|
75
70
|
rescue Exception => e
|
76
71
|
puts e.message
|
data/lib/Converter.rb
CHANGED
@@ -15,26 +15,36 @@ module BConv
|
|
15
15
|
end
|
16
16
|
|
17
17
|
def convert
|
18
|
-
outputfilename = Util.makeAbsolute(@map['
|
18
|
+
outputfilename = Util.makeAbsolute(@map['OutputFile'], @configFile)
|
19
19
|
templatefilename = Util.makeAbsolute(@map['TemplateFile'], @configFile)
|
20
20
|
|
21
21
|
lineIdx = 0
|
22
22
|
tmpLineIdx = 0
|
23
23
|
set = true
|
24
|
+
|
25
|
+
@map.delete_if{|k,_| (k=="EXCLUDE_BAKE_DEPENDENCIES" || k=="EXCLUDE_BAKE_SOURCES" || k=="EXCLUDE_BAKE_INCLUDES") } #not useful anymore
|
26
|
+
|
24
27
|
begin
|
25
28
|
File.open(outputfilename, 'w') do |fout|
|
26
29
|
File.open(templatefilename) do |fread|
|
27
30
|
File.readlines(fread).each do |line|
|
28
31
|
lineIdx += 1
|
29
32
|
wroteLine = false
|
33
|
+
|
30
34
|
@map.keys.each do |key|
|
31
|
-
|
32
35
|
if line.include?(key.to_s) && @map[key].include?(".txt")
|
33
36
|
preAndPostfix = line.scan(/(.*)\$\$\(#{key}\)(.*)/)
|
37
|
+
preAndPostfixOpt = line.scan(/(.*)\$OPTION\(#{key}\)(.*)/)
|
38
|
+
|
34
39
|
if preAndPostfix.length == 1
|
35
40
|
prefix = preAndPostfix[0][0]
|
36
41
|
postfix = preAndPostfix[0][1]
|
37
42
|
end
|
43
|
+
#need some cosmetics!
|
44
|
+
if preAndPostfixOpt.length == 1
|
45
|
+
prefix = preAndPostfixOpt[0][0]
|
46
|
+
postfix = preAndPostfixOpt[0][1]
|
47
|
+
end
|
38
48
|
|
39
49
|
filename = Util.makeAbsolute(@map[key], @configFile)
|
40
50
|
raise "Error: Template file #{File.basename(filename)} is empty!" if File.zero?(filename)
|
@@ -46,14 +56,15 @@ module BConv
|
|
46
56
|
@map.keys.each do |k|
|
47
57
|
wroteLine = findAndReplace(k, l, fout, prefix, postfix)
|
48
58
|
break if wroteLine == true
|
49
|
-
end
|
59
|
+
end
|
60
|
+
|
50
61
|
if wroteLine == false
|
51
62
|
l.strip!
|
52
63
|
l = prefix + l + postfix + "\n"
|
53
64
|
m = l.match(/\$\$\((.*)\)/)
|
54
|
-
|
55
|
-
|
56
|
-
|
65
|
+
opt = l.match(/\$OPTION\((.*)\)/)
|
66
|
+
raise "Error: Key $$(#{m[1]}) in #{File.basename(filename)}, line #{tmpLineIdx.to_s} wasn\'t replaced!" if m
|
67
|
+
puts "Info: Key $OPTION(#{opt[1]}) in #{File.basename(filename)}, line #{tmpLineIdx.to_s} wasn\'t replaced!" if opt
|
57
68
|
fout.write(l)
|
58
69
|
set = false
|
59
70
|
end
|
@@ -66,15 +77,18 @@ module BConv
|
|
66
77
|
elsif line.match(/\$\$\(#{key}\)/)
|
67
78
|
wroteLine = findAndReplace(key, line, fout, "", "")
|
68
79
|
break
|
80
|
+
elsif line.match(/\$OPTION\(#{key}\)/)
|
81
|
+
wroteLine = findAndReplace(key, line, fout, "", "")
|
82
|
+
break
|
69
83
|
end
|
70
84
|
end
|
71
85
|
|
72
86
|
if wroteLine == false
|
73
87
|
if set == true
|
74
88
|
m = line.match(/\$\$\((.*)\)/)
|
75
|
-
|
76
|
-
|
77
|
-
|
89
|
+
opt = line.match(/\$OPTION\((.*)\)/)
|
90
|
+
raise "Error: Key $$(#{m[1]}) in #{File.basename(templatefilename)}, line #{lineIdx.to_s} wasn\'t replaced!" if m
|
91
|
+
puts "Info: Key $OPTION(#{opt[1]}) in #{File.basename(templatefilename)}, line #{lineIdx.to_s} wasn\'t replaced!" if opt
|
78
92
|
fout.write(line)
|
79
93
|
end
|
80
94
|
set = true
|
@@ -89,16 +103,19 @@ module BConv
|
|
89
103
|
puts e.back_trace if @debugMode == true
|
90
104
|
abort
|
91
105
|
end
|
106
|
+
return 0
|
92
107
|
end
|
93
108
|
|
94
109
|
def findAndReplace(key, line, fout, prefix, postfix)
|
95
110
|
wroteLine = false
|
96
111
|
found = line.scan(/(.*)\$\$\(#{key}\)(.*)/)
|
97
|
-
|
112
|
+
foundOpt = line.scan(/(.*)\$OPTION\(#{key}\)(.*)/)
|
113
|
+
|
114
|
+
found = foundOpt if (found.length==0 && foundOpt.length!=0)
|
115
|
+
|
98
116
|
if found.length == 1
|
99
117
|
pre = found[0][0]
|
100
118
|
post = found[0][1]
|
101
|
-
|
102
119
|
if @map[key].kind_of?(Array)
|
103
120
|
@map[key].each do |val|
|
104
121
|
line = prefix + pre + val.to_s + post + postfix + "\n"
|
@@ -114,6 +131,10 @@ module BConv
|
|
114
131
|
line.gsub!(/\$\$\(#{key}\)/, @map[key].to_s)
|
115
132
|
fout.write(line)
|
116
133
|
wroteLine = true
|
134
|
+
elsif line.include?("/\$OPTION\(#{key}\)/") && found.length == 0
|
135
|
+
line.gsub!(/\$OPTION\(#{key}\)/, @map[key].to_s)
|
136
|
+
fout.write(line)
|
137
|
+
wroteLine = true
|
117
138
|
end
|
118
139
|
return wroteLine
|
119
140
|
end
|
data/lib/File_ext.rb
CHANGED
data/lib/Filter.rb
CHANGED
@@ -8,29 +8,17 @@ module BConv
|
|
8
8
|
|
9
9
|
class Filter
|
10
10
|
|
11
|
-
def self.hashFilter(keySearched,
|
11
|
+
def self.hashFilter(keySearched, forFiltering, hash)
|
12
|
+
forFilteringArr = forFiltering[1..-2].split(",").map {|elm| elm.strip}
|
12
13
|
hash.each do |key, value|
|
13
|
-
if
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
if key == keySearched.split("EXCLUDE_")[1]
|
15
|
+
forFilteringArr.each do |elm|
|
16
|
+
value.each do |val|
|
17
|
+
if val.include?(elm)
|
18
|
+
value.delete(val)
|
19
|
+
end
|
20
|
+
end
|
20
21
|
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
if keySearched == "DEPENDENCIES_FILTER"
|
25
|
-
hvalues = []
|
26
|
-
if doFilter == "false"
|
27
|
-
hash["BAKE_DEPENDENCIES"].each { |v| hvalues << v }
|
28
|
-
hash.store("DEPENDENCIES_FILTER", hvalues)
|
29
|
-
hash.delete("BAKE_DEPENDENCIES")
|
30
|
-
else
|
31
|
-
hash["BAKE_DEPENDENCIES_FILTERED"].each { |v| hvalues << v }
|
32
|
-
hash.store("DEPENDENCIES_FILTER", hvalues)
|
33
|
-
hash.delete("BAKE_DEPENDENCIES_FILTERED")
|
34
22
|
end
|
35
23
|
end
|
36
24
|
return hash
|
data/lib/PathAdapt.rb
CHANGED
@@ -10,13 +10,15 @@ module BConv
|
|
10
10
|
SLASH = "/"
|
11
11
|
COLON = ":"
|
12
12
|
|
13
|
-
def self.adapt_path(outputFilePath, bhash, cfgFleFromCmdLne)
|
13
|
+
def self.adapt_path(outputFilePath, bhash, cfgFleFromCmdLne, debugMode)
|
14
14
|
diffPathLevels, diffPathLevelsDown = 0, 0
|
15
15
|
dir, diffUp = "", ""
|
16
16
|
diffArr = []
|
17
17
|
|
18
|
-
|
19
|
-
|
18
|
+
begin
|
19
|
+
splitOutputFile = File.expand_path(File.dirname(outputFilePath),File.dirname(cfgFleFromCmdLne)).split("/")
|
20
|
+
splitProjMeta = bhash['BAKE_PROJECTDIR'][0].split("/") if bhash['BAKE_PROJECTDIR'][0].include?("/") && bhash['BAKE_PROJECTDIR'] != nil
|
21
|
+
#raise "Error: BAKE_PROJDIR is missing!" if bhash['BAKE_PROJECTDIR'] == nil
|
20
22
|
|
21
23
|
if splitOutputFile.length > splitProjMeta.length
|
22
24
|
diffPathLevels = splitOutputFile.length-splitProjMeta.length
|
@@ -73,6 +75,11 @@ module BConv
|
|
73
75
|
end
|
74
76
|
end
|
75
77
|
end
|
78
|
+
rescue Exception => e
|
79
|
+
puts e.message
|
80
|
+
puts e.backtrace.inspect if debugMode == true
|
81
|
+
exit(1)
|
82
|
+
end
|
76
83
|
return directories
|
77
84
|
end
|
78
85
|
|
data/lib/Util.rb
CHANGED
data/lib/Version.rb
CHANGED
data/lib/bakeConverter.rb
CHANGED
@@ -20,7 +20,8 @@ def main
|
|
20
20
|
projToConvert = ""
|
21
21
|
cfgFleFromCmdLne = ""
|
22
22
|
setMock = false
|
23
|
-
debugMode = false
|
23
|
+
debugMode = false
|
24
|
+
mapConverted = 0
|
24
25
|
|
25
26
|
begin
|
26
27
|
args = ARGV.select.each_with_index{|str, i| i.even? && str[0] == "-"}
|
@@ -36,7 +37,7 @@ def main
|
|
36
37
|
end
|
37
38
|
|
38
39
|
if ARGV.length == 1 && ARGV[0] != "--help" && ARGV[0] != "-h" && ARGV[0] != "--show_doc" && ARGV[0] != "--version" && ARGV[0] != "-v" && ARGV[0] != "--show_license" && ARGV[0] != "--mock"
|
39
|
-
puts "Error: Too less arguments! (try --help)"
|
40
|
+
#puts "Error: Too less arguments! (try --help)"
|
40
41
|
puts "Config file is missing!" if opts[0] == nil
|
41
42
|
exit(-1)
|
42
43
|
elsif ARGV.length == 0 || (ARGV.length == 1 && ARGV[0] == "--mock")
|
@@ -76,7 +77,6 @@ def main
|
|
76
77
|
when "--debug"
|
77
78
|
debugMode = true
|
78
79
|
when "--show_doc"
|
79
|
-
#Launchy.open(File.expand_path("../doc/doc.html", File.dirname(__FILE__)))
|
80
80
|
Launchy.open("http://esrlabs.github.io/bakeConv/")
|
81
81
|
exit(0)
|
82
82
|
when "--show_license"
|
@@ -93,9 +93,9 @@ def main
|
|
93
93
|
end
|
94
94
|
end
|
95
95
|
|
96
|
-
rescue => e
|
96
|
+
rescue Exception => e
|
97
97
|
puts "Error in arguments!"
|
98
|
-
puts e.
|
98
|
+
puts e.backtrace if debugMode == true
|
99
99
|
exit(-1)
|
100
100
|
end
|
101
101
|
|
@@ -108,11 +108,10 @@ def main
|
|
108
108
|
cp = BConv::ConfigParser.new(configFile, projToConvert, debugMode)
|
109
109
|
|
110
110
|
puts "Reading config..."
|
111
|
-
mappings = cp.readConfig
|
111
|
+
status, mappings = cp.readConfig
|
112
112
|
|
113
113
|
abort "Error: Config file is empty OR the requested project(s) is commented out!" if mappings.length == 0
|
114
114
|
puts "Converting #{mappings.length} projects..."
|
115
|
-
|
116
115
|
idxCnt = 0
|
117
116
|
|
118
117
|
mappings.each do |map|
|
@@ -126,22 +125,30 @@ def main
|
|
126
125
|
bhash = bake.getHash(bakeLines)
|
127
126
|
if bhash != nil
|
128
127
|
map.each do |k,v|
|
129
|
-
if (k == "
|
128
|
+
if (k == "EXCLUDE_BAKE_SOURCES") || (k == "EXCLUDE_BAKE_INCLUDES") || (k == "EXCLUDE_BAKE_DEPENDENCIES")
|
130
129
|
bhash = BConv::Filter.hashFilter(k, v, bhash)
|
131
130
|
end
|
132
131
|
end
|
132
|
+
bhash_adapted = BConv::PathAdapt.adapt_path(map['OutputFile'], bhash, cfgFleFromCmdLne, debugMode)
|
133
133
|
end
|
134
|
-
bhash_adapted = BConv::PathAdapt.adapt_path(map['OutputFileName'], bhash, cfgFleFromCmdLne)
|
135
134
|
|
136
135
|
if bhash_adapted != nil
|
137
|
-
bhash_adapted.each {|k,v| map[k] = v unless (map.has_key?k
|
136
|
+
bhash_adapted.each {|k,v| map[k] = v unless (map.has_key?k)}
|
138
137
|
conv = BConv::Converter.new(map, configFile, debugMode)
|
139
138
|
puts "Convert..."
|
140
|
-
conv.convert
|
139
|
+
status = conv.convert
|
140
|
+
mapConverted = mapConverted + 1 if status == 0
|
141
141
|
end
|
142
142
|
end
|
143
143
|
|
144
|
-
puts "Done"
|
144
|
+
puts "Done: Converted #{mapConverted} from #{mappings.length} projects."
|
145
|
+
|
146
|
+
if (mapConverted == mappings.length) && (mapConverted != 0)
|
147
|
+
return exit(0)
|
148
|
+
else
|
149
|
+
return exit(1)
|
150
|
+
end
|
151
|
+
|
145
152
|
end
|
146
153
|
|
147
154
|
#-------------------------------------------------------
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bakeConv
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Frauke Blossey
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-09-
|
11
|
+
date: 2015-09-11 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: launchy
|