33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
# File 'lib/roku_builder/plugins/analyzer.rb', line 33
def analyze(options:, quiet: false)
@options = options
@warnings = []
@sca_warning = {}
performance_config = get_config("performance_config.json")
linter_config = get_config(".roku_builder_linter.json", true)
linter_config ||= {is_ssai: false}
loader = Loader.new(config: @config)
Dir.mktmpdir do |dir|
loader.copy(options: options, path: dir)
run_sca_tool(path: dir, linter_config: linter_config)
libraries = @config.project[:libraries]
libraries ||= []
Dir.glob(File.join(dir, "**", "*")).each do |file_path|
file = file_path.dup; file.slice!(dir)
unless libraries.any_is_start?(file) and not @options[:include_libraries]
if File.file?(file_path) and file_path.end_with?(".brs", ".xml")
line_inspector_config = []
line_inspector_config = performance_config unless linter_config[:skip_performance]
line_inspector_config += linter_config[:rules] if linter_config[:rules]
line_inspector = LineInspector.new(inspector_config: line_inspector_config, indent_config: linter_config[:indentation])
@warnings.concat(line_inspector.run(file_path))
end
end
end
format_messages(dir)
print_warnings unless quiet
end
@warnings
end
|