class Vanagon::CLI::BuildRequirements
Constants
- DOCUMENTATION
Public Instance Methods
options_translate(docopt_options)
click to toggle source
# File lib/vanagon/cli/build_requirements.rb, line 55 def options_translate(docopt_options) translations = { '--verbose' => :verbose, '--workdir' => :workdir, '--configdir' => :configdir, '--engine' => :engine, '<project-name>' => :project_name, '<platform>' => :platform, } return docopt_options.map { |k, v| [translations[k], v] }.to_h end
parse(argv)
click to toggle source
# File lib/vanagon/cli/build_requirements.rb, line 28 def parse(argv) Docopt.docopt(DOCUMENTATION, { argv: argv }) rescue Docopt::Exit => e VanagonLogger.error e.message exit 1 end
run(options)
click to toggle source
# File lib/vanagon/cli/build_requirements.rb, line 35 def run(options) # rubocop:disable Metrics/AbcSize platform = options[:platform] project = options[:project_name] driver = Vanagon::Driver.new(platform, project) components = driver.project.components component_names = components.map(&:name) build_requirements = [] components.each do |component| build_requirements << component.build_requires.reject do |requirement| # only include external requirements: i.e. those that do not match # other components in the project component_names.include?(requirement) end end VanagonLogger.warn "**** External packages required to build #{project} on #{platform}: ***" VanagonLogger.warn JSON.pretty_generate(build_requirements.flatten.uniq.sort) end