10
11
12
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/licensed/command/cache.rb', line 10
def run(force: false)
@config.sources.each do |source|
@config.ui.info "Caching licenses for #{source.type} dependencies:"
dependencies(source).each do |dependency|
filename = @config.path.join("#{source.type}/#{dependency["name"]}.txt")
if File.exist?(filename)
license = Licensed::License.read(filename)
if !force && dependency["version"] == license["version"]
@config.ui.info " Using #{dependency["name"]} (#{dependency["version"]})"
next
end
end
@config.ui.info " Caching #{dependency["name"]} (#{dependency["version"]})"
dependency.detect_license!
dependency.save(filename)
end
names = dependencies(source).map { |d| d["name"] }
license_source_path = @config.path.join(source.type)
Dir.glob(license_source_path.join("**/*.txt")).each do |file|
file_path = Pathname.new(file)
relative_path = file_path.relative_path_from(license_source_path).to_s
FileUtils.rm(file) unless names.include?(relative_path.chomp(".txt"))
end
end
@config.ui.confirm "License caching complete!"
@config.sources.each do |source|
@config.ui.confirm "* #{source.type} dependencies: #{dependencies(source).size}"
end
end
|