Class: CocoaPodsGitlabLicenseReport::PostInstallHookHandler

Inherits:
Object
  • Object
show all
Defined in:
lib/cocoapods-gitlab_license_report.rb

Instance Method Summary collapse

Constructor Details

#initialize(context, options, generator = nil) ⇒ PostInstallHookHandler

Returns a new instance of PostInstallHookHandler.



7
8
9
10
11
# File 'lib/cocoapods-gitlab_license_report.rb', line 7

def initialize(context, options, generator = nil)
  @context = context
  @options = options
  @generator = generator || ReportGenerator.new(@context)
end

Instance Method Details

#handle!Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/cocoapods-gitlab_license_report.rb', line 13

def handle!
  Pod::UI.section 'Generating Gitlab licenses report' do

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

    sandbox = @context.sandbox if defined? @context.sandbox
    sandbox ||= Pod::Sandbox.new(@context.sandbox_root)

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

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

  end
end