13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
# File 'lib/bom_builder.rb', line 13
def self.build(path)
original_working_directory = Dir.pwd
setup(path)
specs_list
bom = build_bom(@gems)
begin
@logger.info("Changing directory to the original working directory located at #{original_working_directory}")
Dir.chdir original_working_directory
rescue => e
@logger.error("Unable to change directory the original working directory located at #{original_working_directory}. #{e.message}: #{e.backtrace.join('\n')}")
abort
end
bom_directory = File.dirname(@bom_file_path)
begin
FileUtils.mkdir_p(bom_directory) unless File.directory?(bom_directory)
rescue => e
@logger.error("Unable to create the directory to hold the BOM output at #{@bom_directory}. #{e.message}: #{e.backtrace.join('\n')}")
abort
end
begin
@logger.info("Writing BOM to #{@bom_file_path}...")
File.open(@bom_file_path, "w") {|file| file.write(bom)}
if @options[:verbose]
@logger.info("#{@gems.size} gems were written to BOM located at #{@bom_file_path}")
else
puts "#{@gems.size} gems were written to BOM located at #{@bom_file_path}"
end
rescue => e
@logger.error("Unable to write BOM to #{@bom_file_path}. #{e.message}: #{e.backtrace.join('\n')}")
abort
end
end
|