Sha256: a19a2123b0166b2c25b9b463cd949b0674939e88acbcc84a53f895b92c31b6ae

Contents?: true

Size: 874 Bytes

Versions: 10

Compression:

Stored size: 874 Bytes

Contents

require 'license_finder/package_utils/conan_info_parser'

module LicenseFinder
  class Conan < PackageManager
    def possible_package_paths
      [project_path.join('conanfile.txt')]
    end

    def current_packages
      install_command = 'conan install .'
      info_command = 'conan info .'
      Dir.chdir(project_path) { Cmd.run(install_command) }
      info_output, _stderr, _status = Dir.chdir(project_path) { Cmd.run(info_command) }

      info_parser = ConanInfoParser.new

      deps = info_parser.parse(info_output)
      deps.map do |dep|
        name, version = dep['name'].split('@').first.split('/')
        url = dep['URL']
        license_file_path = Dir.glob("#{project_path}/licenses/#{name}/**/LICENSE*").first
        ConanPackage.new(name, version, File.open(license_file_path).read, url) unless name == 'PROJECT'
      end.compact
    end
  end
end

Version data entries

10 entries across 10 versions & 1 rubygems

Version Path
license_finder-5.4.1 lib/license_finder/package_managers/conan.rb
license_finder-5.4.0 lib/license_finder/package_managers/conan.rb
license_finder-5.3.0 lib/license_finder/package_managers/conan.rb
license_finder-5.2.3 lib/license_finder/package_managers/conan.rb
license_finder-5.2.1 lib/license_finder/package_managers/conan.rb
license_finder-5.2.0 lib/license_finder/package_managers/conan.rb
license_finder-5.1.1 lib/license_finder/package_managers/conan.rb
license_finder-5.1.0 lib/license_finder/package_managers/conan.rb
license_finder-5.0.3 lib/license_finder/package_managers/conan.rb
license_finder-5.0.2 lib/license_finder/package_managers/conan.rb