Verified Commit 61d9e3b7 authored by Balasankar C's avatar Balasankar C
Browse files

Add dependency relationship also to the output

parent a902aa9a
...@@ -4,6 +4,7 @@ module Omnibus ...@@ -4,6 +4,7 @@ module Omnibus
class DependencyInformation class DependencyInformation
JSON_FILE = "dependency_licenses.json".freeze JSON_FILE = "dependency_licenses.json".freeze
DEP_FILE = "dependency_relations.json".freeze
class << self class << self
def process!(project) def process!(project)
...@@ -21,6 +22,10 @@ module Omnibus ...@@ -21,6 +22,10 @@ module Omnibus
File.expand_path(JSON_FILE, project.install_dir) File.expand_path(JSON_FILE, project.install_dir)
end end
def dep_location
File.expand_path(DEP_FILE, project.install_dir)
end
def process! def process!
csv_output = "" csv_output = ""
output = {} output = {}
...@@ -35,7 +40,6 @@ module Omnibus ...@@ -35,7 +40,6 @@ module Omnibus
Dir.glob(File.expand_path("*.csv", csv_dir)).each do |csv_file| Dir.glob(File.expand_path("*.csv", csv_dir)).each do |csv_file|
csv_output += File.open(csv_file).read + "\n" csv_output += File.open(csv_file).read + "\n"
end end
FileUtils.rm_rf(csv_dir)
# Creating JSON output # Creating JSON output
csv_output.each_line do |line| csv_output.each_line do |line|
...@@ -47,6 +51,49 @@ module Omnibus ...@@ -47,6 +51,49 @@ module Omnibus
File.open(json_location, "w") do |f| File.open(json_location, "w") do |f|
f.write(JSON.pretty_generate(output)) f.write(JSON.pretty_generate(output))
end end
generate_relation(project, output)
end
def generate_relation(project, output)
relations = {}
keys = []
project.library.each do |component|
unless relations.has_key?(component)
keys << component.name
relations[component.name] = []
end
component.dependencies.each do |dependency|
relations[component.name] << {'name': dependency, 'version': output[dependency][:version], 'license': output[dependency][:license] }
end
end
csv_dir = File.expand_path("licenses", project.install_dir)
Dir.glob(File.expand_path("*.csv", csv_dir)).each do |csv_file|
component = File.basename(csv_file, File.extname(csv_file))
unless relations.has_key?(component)
keys << component
relations[component] = []
end
csv_output = File.open(csv_file).read
csv_output.each_line do |line|
line = line.strip
next if line.empty?
dependencies = line.split(",")
dependency = dependencies[0]
relations[component] << {'name': dependency, 'version': output[dependency][:version], 'license': output[dependency][:license] }
end
end
f = File.open(dep_location, "w")
final_output = []
keys.each do |key|
final_output << {name: key, version: output[key][:version], license: output[key][:license], dependencies: relations[key]}
end
f.write(JSON.pretty_generate(final_output))
f.close()
end end
end end
end end
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment