class Vanagon::CLI::Dependencies
Constants
- DOCUMENTATION
Public Instance Methods
get_platforms(options)
click to toggle source
# File lib/vanagon/cli/dependencies.rb, line 76 def get_platforms(options) platforms = options[:platforms].split(',') if platforms.include?('all') Dir.children(platforms_directory).map do |platform| File.basename(platform, File.extname(platform)) end else platforms end end
get_projects(options)
click to toggle source
# File lib/vanagon/cli/dependencies.rb, line 57 def get_projects(options) platforms_directory = File.join(options[:configdir], 'platforms') projects_directory = File.join(options[:configdir], 'projects') unless Dir.exist?(projects_directory) && Dir.exist?(platforms_directory) VanagonLogger.error "Path to #{platforms_directory} or #{projects_directory} not found." exit 1 end projects = [options[:project_name]] if projects.include?('all') Dir.children(projects_directory).map do |project| File.basename(project, File.extname(project)) end else projects end end
options_translate(docopt_options)
click to toggle source
# File lib/vanagon/cli/dependencies.rb, line 87 def options_translate(docopt_options) translations = { '--verbose' => :verbose, '--workdir' => :workdir, '--configdir' => :configdir, '<project-name>' => :project_name, '<platforms>' => :platforms } return docopt_options.map { |k, v| [translations[k], v] }.to_h end
parse(argv)
click to toggle source
# File lib/vanagon/cli/dependencies.rb, line 24 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/dependencies.rb, line 31 def run(options) projects = get_projects(options) platforms = get_platforms(options) failures = [] projects.each do |project| platforms.each do |platform| begin artifact = Vanagon::Driver.new(platform, project, options) artifact.dependencies rescue RuntimeError => e failures.push("#{project}, #{platform}: #{e}") end end end unless failures.empty? VanagonLogger.info "Failed to generate dependencies for the following:" failures.each do |failure| VanagonLogger.info failure end end VanagonLogger.info "Finished generating dependencies" end