in lib/omnibus/licensing.rb [467:504]
def process_transitive_dependency_licensing_info
Dir.glob("#{cache_dir}/*/*-dependency-licenses.json").each do |license_manifest_path|
license_manifest_data = FFI_Yajl::Parser.parse(File.read(license_manifest_path))
project_name = license_manifest_data["project_name"]
dependency_license_dir = File.dirname(license_manifest_path)
license_manifest_data["dependency_managers"].each do |dep_mgr_name, dependencies|
dep_license_map[dep_mgr_name] ||= {}
dependencies.each do |dependency|
dependency["license_files"].each do |f|
license_path = File.join(dependency_license_dir, f)
output_path = File.join(output_dir, f)
FileUtils.cp(license_path, output_path)
end
dep_name = dependency["name"]
dep_version = dependency["version"]
if dep_license_map[dep_mgr_name][dep_name] && dep_license_map[dep_mgr_name][dep_name][dep_version]
dep_license_map[dep_mgr_name][dep_name][dep_version]["dependency_of"] << project_name
else
dep_license_map[dep_mgr_name][dep_name] ||= {}
dep_license_map[dep_mgr_name][dep_name][dep_version] = {
"license" => dependency["license"],
"license_files" => dependency["license_files"],
"dependency_of" => [ project_name ],
}
end
end
end
end
FileUtils.rm_rf(cache_dir)
end