26
27
28
29
30
31
32
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
|
# File 'lib/roku_builder/plugins/analyzer.rb', line 26
def analyze(options:, quiet: false)
@options = options
@warnings = []
analyzer_config = get_analyzer_config
@inspector_config = analyzer_config[:inspectors]
loader = Loader.new(config: @config)
Dir.mktmpdir do |dir|
loader.copy(options: options, path: dir)
raf_inspector = RafInspector.new(config: @config, dir: dir)
manifest_inspector = ManifestInspector.new(config: @config, dir: dir, raf: raf_inspector)
@warnings.concat(manifest_inspector.run(analyzer_config[:inspectors]))
has_source_dir = false
Dir.glob(File.join(dir, "**", "*")).each do |file_path|
if File.file?(file_path) and file_path.end_with?(".brs", ".xml")
line_inspector = LineInspector.new(config: @config, raf: raf_inspector, inspector_config: analyzer_config[:lineInspectors])
@warnings.concat(line_inspector.run(file_path))
end
if file_path.end_with?("__MACOSX")
add_warning(warning: :packageMacosxDirectory, path: file_path)
end
if file_path.end_with?(".zip", ".md", ".pkg")
add_warning(warning: :packageExtraneousFiles, path: file_path)
end
has_source_dir = true if file_path.end_with?("source")
end
unless has_source_dir
add_warning(warning: :packageSourceDirectory, path: "source")
end
@warnings.concat(raf_inspector.run(analyzer_config[:inspectors]))
print_warnings(dir) unless quiet
end
@warnings
end
|