Sha256: ed8c2dac6ef803333043adb61bafd8a39d4e07df1730339811dc040679f70b37

Contents?: true

Size: 1.54 KB

Versions: 11

Compression:

Stored size: 1.54 KB

Contents

require 'json'

module LicenseFinder
  class Carthage < PackageManager
    class CarthageError < RuntimeError; end

    def current_packages
      cartfile.each_line.map do |line|
        name, version = name_version_from_line line

        CarthagePackage.new(
          name,
          version,
          license_text(name),
          logger: logger,
          install_path: project_checkout(name)
        )
      end
    end

    def self.package_management_command
      LicenseFinder::Platform.darwin? ? 'carthage' : nil
    end

    def possible_package_paths
      [public_dependency_path]
    end

    private

    def cartfile
      if File.exist?(resolved_path)
        @cartfile ||= IO.read(resolved_path)
      else
        raise CarthageError, 'No Cartfile.resolved found.
          Please install your dependencies first.'
      end
    end

    def public_dependency_path
      project_path.join('Cartfile')
    end

    def resolved_path
      project_path.join('Cartfile.resolved')
    end

    def project_checkout(name)
      project_path.join('Carthage', 'Checkouts', name)
    end

    def license_text(name)
      license_path = license_pattern(name).find { |f| File.exist?(f) }
      license_path.nil? ? nil : IO.read(license_path)
    end

    def license_pattern(name)
      checkout_path = project_checkout(name)
      Dir.glob(checkout_path.join('LICENSE*'), File::FNM_CASEFOLD)
    end

    def name_version_from_line(cartfile_line)
      cartfile_line.split(' ')[1, 2].map { |f| f.split('/').last.delete('"').gsub('.git', '') }
    end
  end
end

Version data entries

11 entries across 11 versions & 1 rubygems

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