Sha256: 8c616d6245fe8294f0237608d4e99990e71c5330a43615a9003776de304e3274

Contents?: true

Size: 943 Bytes

Versions: 3

Compression:

Stored size: 943 Bytes

Contents

require 'xmlsimple'
require_relative 'gradle_dependency_finder'

module LicenseFinder
  class Gradle < PackageManager
    def initialize(options={})
      super
      @command = options[:gradle_command] || 'gradle'
    end

    def current_packages
      command = "#{@command} downloadLicenses"
      output, success = Dir.chdir(project_path) { capture(command) }
      raise "Command '#{command}' failed to execute: #{output}" unless success

      dependencies = GradleDependencyFinder.new(project_path).dependencies
      packages = dependencies.flat_map do |xml_file|
        options = {'GroupTags' => {'dependencies' => 'dependency'}}
        contents = XmlSimple.xml_in(xml_file, options).fetch('dependency', [])
        contents.map do |dep|
          GradlePackage.new(dep, logger: logger)
        end
      end

      packages.uniq
    end

    private

    def package_path
      project_path.join('build.gradle')
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
license_finder-2.1.0.rc3 lib/license_finder/package_managers/gradle.rb
license_finder-2.1.0.rc2 lib/license_finder/package_managers/gradle.rb
license_finder-2.1.0.rc1 lib/license_finder/package_managers/gradle.rb