bake-toolkit 1.8.0.1 → 2.0.10

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.
Files changed (99) hide show
  1. checksums.yaml +4 -4
  2. data/bin/bake +14 -53
  3. data/bin/bakery +50 -43
  4. data/bin/createVSProjects +3 -3
  5. data/doc/cmd/install.html +1 -5
  6. data/doc/cmd/usecmd.html +29 -5
  7. data/doc/dyk/lint.html +21 -4
  8. data/doc/dyk/tipps.html +0 -6
  9. data/doc/eclipse/import.html +3 -1
  10. data/doc/eclipse/import/Import.png +0 -0
  11. data/doc/eclipse/use.html +8 -5
  12. data/doc/further/change.html +134 -1
  13. data/doc/further/issues.html +1 -0
  14. data/doc/further/wish.html +24 -21
  15. data/doc/index.html +1 -1
  16. data/doc/syntax/subst.html +8 -1
  17. data/doc/syntax/syntax.html +42 -14
  18. data/lib/bake/cache.rb +51 -59
  19. data/lib/bake/config/loader.rb +289 -0
  20. data/lib/bake/libElement.rb +134 -0
  21. data/lib/bake/mergeConfig.rb +1 -1
  22. data/lib/bake/model/language.rb +1 -1
  23. data/lib/bake/model/loader.rb +88 -0
  24. data/lib/bake/model/metamodel.rb +24 -16
  25. data/lib/bake/model/metamodel_ext.rb +9 -4
  26. data/lib/bake/options/options.rb +222 -0
  27. data/lib/bake/options/showConfigNames.rb +44 -0
  28. data/lib/bake/options/showDoc.rb +19 -0
  29. data/lib/bake/options/showLicense.rb +9 -0
  30. data/lib/bake/options/showToolchains.rb +39 -0
  31. data/lib/bake/options/usage.rb +54 -0
  32. data/lib/bake/process_output.rb +10 -0
  33. data/lib/bake/subst.rb +105 -40
  34. data/lib/bake/toolchain/clang.rb +44 -0
  35. data/lib/bake/toolchain/colorizing_formatter.rb +125 -0
  36. data/lib/bake/toolchain/diab.rb +53 -0
  37. data/lib/bake/toolchain/errorparser/diab_compiler_error_parser.rb +40 -0
  38. data/lib/bake/toolchain/errorparser/diab_linker_error_parser.rb +41 -0
  39. data/lib/bake/toolchain/errorparser/error_parser.rb +71 -0
  40. data/lib/bake/toolchain/errorparser/gcc_compiler_error_parser.rb +35 -0
  41. data/lib/bake/toolchain/errorparser/gcc_linker_error_parser.rb +35 -0
  42. data/lib/bake/toolchain/errorparser/greenhills_compiler_error_parser.rb +32 -0
  43. data/lib/bake/toolchain/errorparser/greenhills_linker_error_parser.rb +44 -0
  44. data/lib/bake/toolchain/errorparser/keil_compiler_error_parser.rb +40 -0
  45. data/lib/bake/toolchain/errorparser/keil_linker_error_parser.rb +30 -0
  46. data/lib/bake/toolchain/errorparser/lint_error_parser.rb +34 -0
  47. data/lib/bake/toolchain/errorparser/process_output.rb +3 -0
  48. data/lib/bake/toolchain/errorparser/ti_compiler_error_parser.rb +30 -0
  49. data/lib/bake/toolchain/errorparser/ti_linker_error_parser.rb +30 -0
  50. data/lib/bake/toolchain/gcc.rb +49 -0
  51. data/lib/bake/toolchain/gcc_param.rb +7 -0
  52. data/lib/bake/toolchain/greenhills.rb +52 -0
  53. data/lib/bake/toolchain/keil.rb +55 -0
  54. data/lib/bake/toolchain/lint.rb +20 -0
  55. data/lib/bake/toolchain/provider.rb +136 -0
  56. data/lib/bake/toolchain/ti.rb +47 -0
  57. data/lib/bake/util.rb +27 -15
  58. data/lib/bakery/buildPattern.rb +1 -1
  59. data/lib/bakery/model/language.rb +1 -1
  60. data/lib/bakery/model/loader.rb +56 -0
  61. data/lib/bakery/model/metamodel.rb +1 -1
  62. data/lib/bakery/options/options.rb +87 -0
  63. data/lib/bakery/toBake.rb +10 -6
  64. data/lib/blocks/block.rb +225 -0
  65. data/lib/blocks/blockBase.rb +155 -0
  66. data/lib/blocks/commandLine.rb +25 -0
  67. data/lib/blocks/compile.rb +382 -0
  68. data/lib/blocks/docu.rb +28 -0
  69. data/lib/blocks/executable.rb +143 -0
  70. data/lib/blocks/has_execute_command.rb +31 -0
  71. data/lib/blocks/library.rb +78 -0
  72. data/lib/blocks/lint.rb +53 -0
  73. data/lib/blocks/makefile.rb +87 -0
  74. data/lib/blocks/showIncludes.rb +114 -0
  75. data/lib/common/abortException.rb +4 -0
  76. data/lib/common/cleanup.rb +9 -0
  77. data/lib/common/exit_helper.rb +28 -0
  78. data/lib/common/ext/file.rb +88 -0
  79. data/lib/common/ext/stdout.rb +45 -0
  80. data/lib/common/ide_interface.rb +194 -0
  81. data/lib/common/options/option.rb +13 -0
  82. data/lib/common/options/parser.rb +59 -0
  83. data/lib/common/process.rb +64 -0
  84. data/lib/common/utils.rb +52 -0
  85. data/lib/{bake → common}/version.rb +3 -10
  86. data/lib/multithread/job.rb +44 -0
  87. data/lib/tocxx.rb +201 -932
  88. data/lib/vs/options.rb +3 -2
  89. data/license.txt +47 -22
  90. metadata +90 -30
  91. data/bin/bake-doc +0 -12
  92. data/lib/alias/loader.rb +0 -56
  93. data/lib/alias/model/language.rb +0 -22
  94. data/lib/alias/model/metamodel.rb +0 -29
  95. data/lib/bake/loader.rb +0 -92
  96. data/lib/bake/options.rb +0 -421
  97. data/lib/bakery/loader.rb +0 -57
  98. data/lib/bakery/options.rb +0 -105
  99. data/lib/option/parser.rb +0 -73
@@ -0,0 +1,53 @@
1
+ require 'bake/toolchain/provider'
2
+ require 'common/utils'
3
+ require 'bake/toolchain/errorparser/diab_compiler_error_parser'
4
+ require 'bake/toolchain/errorparser/diab_linker_error_parser'
5
+
6
+ module Bake
7
+ module Toolchain
8
+
9
+ DiabChain = Provider.add("Diab")
10
+
11
+ DiabChain[:COMPILER][:C].update({
12
+ :COMMAND => "dcc",
13
+ :FLAGS => "",
14
+ :DEFINE_FLAG => "-D",
15
+ :OBJECT_FILE_FLAG => "-o",
16
+ :OBJ_FLAG_SPACE => true,
17
+ :INCLUDE_PATH_FLAG => "-I",
18
+ :COMPILE_FLAGS => "-c",
19
+ :DEP_FLAGS => "-Xmake-dependency=5 -Xmake-dependency-savefile=",
20
+ :DEP_FLAGS_SPACE => false,
21
+ :PREPRO_FLAGS => "-P"
22
+ })
23
+
24
+ DiabChain[:COMPILER][:CPP] = Utils.deep_copy(DiabChain[:COMPILER][:C])
25
+ DiabChain[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:CPP][:SOURCE_FILE_ENDINGS]
26
+
27
+ DiabChain[:COMPILER][:ASM] = Utils.deep_copy(DiabChain[:COMPILER][:C])
28
+ DiabChain[:COMPILER][:ASM][:COMMAND] = "das"
29
+ DiabChain[:COMPILER][:ASM][:COMPILE_FLAGS] = ""
30
+ DiabChain[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS] = Provider.default[:COMPILER][:ASM][:SOURCE_FILE_ENDINGS]
31
+ DiabChain[:COMPILER][:ASM][:PREPRO_FLAGS] = ""
32
+
33
+ DiabChain[:ARCHIVER][:COMMAND] = "dar"
34
+ DiabChain[:ARCHIVER][:ARCHIVE_FLAGS] = "-rc"
35
+
36
+ DiabChain[:LINKER][:COMMAND] = "dcc"
37
+ DiabChain[:LINKER][:SCRIPT] = "-Wm"
38
+ DiabChain[:LINKER][:USER_LIB_FLAG] = "-l:"
39
+ DiabChain[:LINKER][:EXE_FLAG] = "-o"
40
+ DiabChain[:LINKER][:LIB_FLAG] = "-l"
41
+ DiabChain[:LINKER][:LIB_PATH_FLAG] = "-L"
42
+ DiabChain[:LINKER][:MAP_FILE_FLAG] = "-Wl,-m6" # no map file if this string is empty, otherwise -Wl,-m6>abc.map
43
+ DiabChain[:LINKER][:OUTPUT_ENDING] = ".elf"
44
+
45
+ diabCompilerErrorParser = DiabCompilerErrorParser.new
46
+ DiabChain[:COMPILER][:C][:ERROR_PARSER] = diabCompilerErrorParser
47
+ DiabChain[:COMPILER][:CPP][:ERROR_PARSER] = diabCompilerErrorParser
48
+ DiabChain[:COMPILER][:ASM][:ERROR_PARSER] = diabCompilerErrorParser
49
+ DiabChain[:ARCHIVER][:ERROR_PARSER] = diabCompilerErrorParser
50
+ DiabChain[:LINKER][:ERROR_PARSER] = DiabLinkerErrorParser.new
51
+
52
+ end
53
+ end
@@ -0,0 +1,40 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class DiabCompilerErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ @error_expression_start = /\"(.+)\", line ([0-9]+): (?!included)(catastrophic |fatal )*([A-Za-z]+)[:]* (.+)/
8
+ @error_expression_end = /^[ \t]*\^/ # well, it may end without "^"... in this case the error will last the next one starts or console text ends
9
+ end
10
+
11
+ def scan_lines(consoleOutput, proj_dir)
12
+ res = []
13
+ error_severity = 255
14
+ consoleOutputFullnames = ""
15
+ consoleOutput.each_line do |l|
16
+ d = ErrorDesc.new
17
+ lstripped = l.rstrip
18
+ scan_res = lstripped.scan(@error_expression_start)
19
+ if scan_res.length == 0
20
+ d.severity = error_severity
21
+ d.message = lstripped
22
+ if lstripped.scan(@error_expression_end).length > 0
23
+ error_severity = 255
24
+ end
25
+ else
26
+ d.file_name = File.expand_path(scan_res[0][0])
27
+ d.line_number = scan_res[0][1].to_i
28
+ d.message = scan_res[0][4]
29
+ d.severity = get_severity(scan_res[0][3])
30
+ error_severity = d.severity
31
+ l.gsub!(scan_res[0][0],d.file_name)
32
+ end
33
+ res << d
34
+ consoleOutputFullnames << l
35
+ end
36
+ [res, consoleOutputFullnames]
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,41 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class DiabLinkerErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ @error_expression = /dld: ([A-Za-z]+): (.+)/
8
+ @error_expression_linkerscript = /dld: \"([^\"]+)\", line ([0-9]+): (.+)/
9
+ end
10
+
11
+ def scan_lines(consoleOutput, proj_dir)
12
+ res = []
13
+ error_severity = 255
14
+ consoleOutput.each_line do |l|
15
+ l.rstrip!
16
+ d = ErrorDesc.new
17
+ scan_res = l.scan(@error_expression)
18
+ scan_res2 = l.scan(@error_expression_linkerscript)
19
+ if scan_res.length == 0 and scan_res2.length == 0 # msg will end with the beginning of the next message
20
+ d.severity = error_severity
21
+ d.message = l
22
+ elsif scan_res.length > 0
23
+ d.file_name = proj_dir
24
+ d.line_number = 0
25
+ d.message = scan_res[0][1]
26
+ d.severity = get_severity(scan_res[0][0])
27
+ error_severity = d.severity
28
+ else
29
+ d.file_name = proj_dir+"/"+scan_res2[0][0]
30
+ d.line_number = scan_res2[0][1].to_i
31
+ d.message = scan_res2[0][2]
32
+ d.severity = SEVERITY_ERROR
33
+ error_severity = d.severity
34
+ end
35
+ res << d
36
+ end
37
+ [res, consoleOutput]
38
+ end
39
+
40
+ end
41
+ end
@@ -0,0 +1,71 @@
1
+ module Bake
2
+
3
+ class ErrorDesc
4
+ def initialize
5
+ @severity = 255
6
+ end
7
+ attr_accessor :severity
8
+ attr_accessor :line_number
9
+ attr_accessor :message
10
+ attr_accessor :file_name
11
+ end
12
+
13
+ class ErrorParser
14
+
15
+ SEVERITY_INFO = 0
16
+ SEVERITY_WARNING = 1
17
+ SEVERITY_ERROR = 2
18
+ SEVERITY_OK = 255
19
+
20
+ def scan(consoleOutput, proj_dir)
21
+ raise "Use specialized classes only"
22
+ end
23
+
24
+ def get_severity(str)
25
+ if str.downcase == "info" || str.downcase == "note"
26
+ SEVERITY_INFO
27
+ elsif str.downcase == "warning"
28
+ SEVERITY_WARNING
29
+ else
30
+ SEVERITY_ERROR
31
+ end
32
+ end
33
+
34
+ def inv_severity(s)
35
+ if s == SEVERITY_INFO
36
+ "info"
37
+ elsif s == SEVERITY_WARNING
38
+ "warning"
39
+ elsif s == SEVERITY_ERROR
40
+ "error"
41
+ else
42
+ raise "Unknown severity: #{s}"
43
+ end
44
+ end
45
+
46
+ # scan the output from the console line by line and return a list of ErrorDesc objects.
47
+ # for none-error/warning lines the description object will indicate that as severity 255
48
+ # for single line errors/warnings: description will contain severity, line-number, message and file-name
49
+ #
50
+ # for multi-line errors/warnings:
51
+ # one description object for each line, first one will contain all single line error information,
52
+ # all following desc.objects will just repeat the severity and include the message
53
+ #
54
+ def scan_lines(consoleOutput, proj_dir)
55
+ raise "Use specialized classes only"
56
+ end
57
+
58
+ def makeVsError(line, d)
59
+ if d.file_name == nil
60
+ return line
61
+ end
62
+
63
+ ret = d.file_name
64
+ ret = ret + "(" + d.line_number.to_s + ")" if (d.line_number and d.line_number > 0)
65
+ ret = ret + ": " + inv_severity(d.severity) + ": " + d.message
66
+ return ret
67
+ end
68
+
69
+ end
70
+
71
+ end
@@ -0,0 +1,35 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class GCCCompilerErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ @error_expression = /([^:]+):([0-9]+)[:0-9]* (catastrophic |fatal )*([A-Za-z\._]+): (.+)/
8
+ end
9
+
10
+ def scan_lines(consoleOutput, proj_dir)
11
+ res = []
12
+ consoleOutputFullnames = ""
13
+ consoleOutput.each_line do |l|
14
+ d = ErrorDesc.new
15
+ scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
16
+ if scan_res.length > 0
17
+ d.file_name = File.expand_path(scan_res[0][0])
18
+ d.line_number = scan_res[0][1].to_i
19
+ d.message = scan_res[0][4]
20
+ if (scan_res[0][3].include?".")
21
+ d.severity = SEVERITY_ERROR
22
+ d.message = scan_res[0][3] + ": " + d.message
23
+ else
24
+ d.severity = get_severity(scan_res[0][3])
25
+ end
26
+ l.gsub!(scan_res[0][0],d.file_name)
27
+ end
28
+ res << d
29
+ consoleOutputFullnames << l
30
+ end
31
+ [res, consoleOutputFullnames]
32
+ end
33
+
34
+ end
35
+ end
@@ -0,0 +1,35 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class GCCLinkerErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ # todo: is every line an error?
8
+ # todo: some linker errors look like simple text, dunno how to parse properly...
9
+ # @error_expression1 = /(.*:\(\..*\)): (.*)/ # e.g. /c/Tool/Temp/ccAlar4R.o:x.cpp:(.text+0x17): undefined reference to `_a'
10
+ # @error_expression2 = /(.*):([0-9]+): (.*)/ # e.g. /usr/lib/gcc/i686-pc-cygwin/4.3.4/../../../../i686-pc-cygwin/bin/ld:roodi.yml.a:1: syntax error
11
+ end
12
+
13
+ def scan_lines(consoleOutput, proj_dir)
14
+ res = []
15
+ consoleOutput.each_line do |l|
16
+ l.rstrip!
17
+ d = ErrorDesc.new
18
+ d.file_name = proj_dir
19
+ d.line_number = 0
20
+ d.message = l
21
+ if l.length == 0
22
+ d.severity = SEVERITY_OK
23
+ elsif l.include?" Warning:"
24
+ d.severity = SEVERITY_WARNING
25
+ else
26
+ d.severity = SEVERITY_ERROR
27
+ end
28
+ res << d
29
+ end
30
+ [res, consoleOutput]
31
+ end
32
+
33
+
34
+ end
35
+ end
@@ -0,0 +1,32 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class GreenHillsCompilerErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ # example:
8
+ # "test.c", line 1: warning #123-D: blah blub
9
+ @error_expression = /"([^"]+)", line ([0-9]+)[:0-9]* (catastrophic |fatal )*([A-Za-z\._]+) (.+)/
10
+ end
11
+
12
+ def scan_lines(consoleOutput, proj_dir)
13
+ res = []
14
+ consoleOutputFullnames = ""
15
+ consoleOutput.each_line do |l|
16
+ d = ErrorDesc.new
17
+ scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
18
+ if scan_res.length > 0
19
+ d.file_name = File.expand_path(scan_res[0][0])
20
+ d.line_number = scan_res[0][1].to_i
21
+ d.message = scan_res[0][4]
22
+ d.severity = get_severity(scan_res[0][3])
23
+ l.gsub!(scan_res[0][0],d.file_name)
24
+ end
25
+ res << d
26
+ consoleOutputFullnames << l
27
+ end
28
+ [res, consoleOutputFullnames]
29
+ end
30
+
31
+ end
32
+ end
@@ -0,0 +1,44 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class GreenHillsLinkerErrorParser < ErrorParser
5
+
6
+ # detect this:
7
+
8
+ # C++ prelinker: recompiling "x/y.z"
9
+ # "blah.h", line 1: warning #123-D: expression has no effect
10
+ # uiuiui
11
+ # ^
12
+ # detected during:
13
+ # instantiation of ...
14
+
15
+ # dblink: WARNING: 10 problems were encountered while processing debug information, see "Debug/xy.dle" for details.
16
+
17
+ def initialize()
18
+ @error_expression = /ld: (.+)/
19
+ end
20
+
21
+ def scan_lines(consoleOutput, proj_dir)
22
+ res = []
23
+ error_severity = 255
24
+ consoleOutput.each_line do |l|
25
+ l.rstrip!
26
+ d = ErrorDesc.new
27
+ scan_res = l.scan(@error_expression)
28
+ if scan_res.length == 0 # msg will end with the beginning of the next message
29
+ d.severity = error_severity
30
+ d.message = l
31
+ elsif scan_res.length > 0
32
+ d.file_name = proj_dir
33
+ d.line_number = 0
34
+ d.message = scan_res[0][0]
35
+ d.severity = SEVERITY_ERROR
36
+ error_severity = d.severity
37
+ end
38
+ res << d
39
+ end
40
+ [res, consoleOutput]
41
+ end
42
+
43
+ end
44
+ end
@@ -0,0 +1,40 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class KeilCompilerErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ @error_expression_start = /\"(.+)\", line ([0-9]+): (?!included)(catastrophic |fatal )*([A-Za-z]+)[:]* (.+)/
8
+ @error_expression_end = /^[ \t]*\^/ # well, it may end without "^"... in this case the error will last the next one starts or console text ends
9
+ end
10
+
11
+ def scan_lines(consoleOutput, proj_dir)
12
+ res = []
13
+ error_severity = 255
14
+ consoleOutputFullnames = ""
15
+ consoleOutput.each_line do |l|
16
+ d = ErrorDesc.new
17
+ lstripped = l.rstrip
18
+ scan_res = lstripped.scan(@error_expression_start)
19
+ if scan_res.length == 0
20
+ d.severity = error_severity
21
+ d.message = lstripped
22
+ if lstripped.scan(@error_expression_end).length > 0
23
+ error_severity = 255
24
+ end
25
+ else
26
+ d.file_name = File.expand_path(scan_res[0][0])
27
+ d.line_number = scan_res[0][1].to_i
28
+ d.message = scan_res[0][4]
29
+ d.severity = get_severity(scan_res[0][3])
30
+ error_severity = d.severity
31
+ l.gsub!(scan_res[0][0],d.file_name)
32
+ end
33
+ res << d
34
+ consoleOutputFullnames << l
35
+ end
36
+ [res, consoleOutputFullnames]
37
+ end
38
+
39
+ end
40
+ end
@@ -0,0 +1,30 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class KeilLinkerErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ @error_expression = /([^:]+): (L[0-9]+[A-Z]: .+)/
8
+ end
9
+
10
+ def scan_lines(consoleOutput, proj_dir)
11
+ res = []
12
+ consoleOutput.each_line do |l|
13
+ l.rstrip!
14
+ d = ErrorDesc.new
15
+ scan_res = l.scan(@error_expression)
16
+ if scan_res.length > 0
17
+ d.file_name = proj_dir
18
+ d.line_number = 0
19
+ d.message = scan_res[0][1]
20
+ d.severity = get_severity(scan_res[0][0])
21
+ error_severity = d.severity
22
+ end
23
+ res << d
24
+ end
25
+ [res, consoleOutput]
26
+ end
27
+
28
+
29
+ end
30
+ end
@@ -0,0 +1,34 @@
1
+ require 'bake/toolchain/errorparser/error_parser'
2
+
3
+ module Bake
4
+ class LintErrorParser < ErrorParser
5
+
6
+ def initialize()
7
+ @error_expression = /([^:]*):([0-9]+): ([A-Za-z]+)[ ]*(.+)/
8
+ end
9
+
10
+ def scan_lines(consoleOutput, proj_dir)
11
+ res = []
12
+ consoleOutputFullnames = ""
13
+ consoleOutput.each_line do |l|
14
+ d = ErrorDesc.new
15
+ scan_res = l.gsub(/\r\n?/, "").scan(@error_expression)
16
+ if scan_res.length > 0
17
+ if (scan_res[0][0] == "")
18
+ d.file_name = proj_dir
19
+ else
20
+ d.file_name = File.expand_path(scan_res[0][0])
21
+ end
22
+ d.line_number = scan_res[0][1].to_i
23
+ d.severity = get_severity(scan_res[0][2])
24
+ d.message = scan_res[0][3]
25
+ l.gsub!(scan_res[0][0],d.file_name)
26
+ end
27
+ res << d
28
+ consoleOutputFullnames << l
29
+ end
30
+ [res, consoleOutputFullnames]
31
+ end
32
+
33
+ end
34
+ end