Class: LicenseFinder::CLI::Main

Inherits:
Base
  • Object
show all
Extended by:
Rootcommand
Defined in:
lib/license_finder/cli/main.rb

Constant Summary collapse

FORMATS =
{
  'text' => TextReport,
  'html' => HtmlReport,
  'markdown' => MarkdownReport,
  'csv' => CsvReport
}.freeze

Class Method Summary collapse

Instance Method Summary collapse

Methods included from Rootcommand

subcommand

Class Method Details

.shared_optionsObject

Method options which are shared between report and action_item



37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/license_finder/cli/main.rb', line 37

def self.shared_options
  method_option :debug,
                aliases: '-d',
                type: :boolean,
                desc: 'Emit detailed info about what LicenseFinder is doing'

  method_option :prepare,
                aliases: '-p',
                type: :boolean,
                desc: 'Prepares the project first for license_finder',
                default: false,
                required: false
end

Instance Method Details

#action_itemsObject



54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
# File 'lib/license_finder/cli/main.rb', line 54

def action_items
  run_prepare_phase if prepare?
  any_packages = license_finder.any_packages?
  unapproved = license_finder.unapproved
  blacklisted = license_finder.blacklisted

  # Ensure to start output on a new line even with dot progress indicators.
  say "\n"

  unless any_packages
    say 'No dependencies recognized!', :red
    exit 0
  end

  if unapproved.empty?
    say 'All dependencies are approved for use', :green
  else
    unless blacklisted.empty?
      say 'Blacklisted dependencies:', :red
      say report_of(blacklisted)
    end

    other_unapproved = unapproved - blacklisted
    unless other_unapproved.empty?
      say 'Dependencies that need approval:', :yellow
      say report_of(other_unapproved)
    end

    exit 1
  end
end

#diff(file1, file2) ⇒ Object



116
117
118
119
120
121
# File 'lib/license_finder/cli/main.rb', line 116

def diff(file1, file2)
  f1 = IO.read(file1)
  f2 = IO.read(file2)
  report = DiffReport.new(Diff.compare(f1, f2))
  save? ? save_report(report, options[:save]) : say(report)
end

#reportObject



95
96
97
98
99
100
101
102
103
104
105
106
107
108
# File 'lib/license_finder/cli/main.rb', line 95

def report
  logger_config[:quiet] = true
  subproject_paths = options[:subprojects]
  subproject_paths = ProjectFinder.new(license_finder.config.project_path).find_projects if options[:recursive]

  if subproject_paths && !subproject_paths.empty?
    finder = LicenseAggregator.new(license_finder_config, subproject_paths)
    report = MergedReport.new(finder.dependencies, options)
  else
    run_prepare_phase if prepare?
    report = report_of(license_finder.acknowledged)
  end
  save? ? save_report(report, options[:save]) : say(report)
end

#versionObject



111
112
113
# File 'lib/license_finder/cli/main.rb', line 111

def version
  puts LicenseFinder::VERSION
end