Sha256: d3cc6682582bf0acb785ba059c96c61a843ab9586730bbd55a9080b48c7ad8a2
Contents?: true
Size: 1.8 KB
Versions: 2
Compression:
Stored size: 1.8 KB
Contents
module Licensed module Command class Cache attr_reader :config def initialize(config) @config = config end 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) # Version did not change, no need to re-cache 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 # Clean up dependencies that have been removed 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 def dependencies(source) source.dependencies.select { |d| !@config.ignored?(d) } end def success? true end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
licensed-0.11.1 | lib/licensed/command/cache.rb |
licensed-0.11.0 | lib/licensed/command/cache.rb |