class CocoaPodsGitlabLicenseReport::PostInstallHookHandler

Public Class Methods

new(context, options, generator = nil) click to toggle source
# File lib/cocoapods-gitlab_license_report.rb, line 7
def initialize(context, options, generator = nil)
  @context = context
  @options = options
  sandbox = @context.sandbox if defined? @context.sandbox
  sandbox ||= Pod::Sandbox.new(@context.sandbox_root)
  @generator = generator || ReportGenerator.new(sandbox)
end

Public Instance Methods

handle!() click to toggle source
# File lib/cocoapods-gitlab_license_report.rb, line 15
def handle!
  Pod::UI.section 'Generating Gitlab licenses report' do

    report_path = @options["report_path"] || 'reports/licenses.json'
    excluded_pods = Set.new(@options["exclude"])

    installed_specs = @context.umbrella_targets.flat_map(&:specs).map(&:root).uniq
    licenses_report = @generator.generate(installed_specs, excluded_pods)

    Dir.mkdir File.dirname(report_path) unless File.exist? File.dirname(report_path)
    File.write(report_path, licenses_report.to_json)

  end
end