ManageIQ/polisher

View on GitHub
lib/polisher/cli/bin/missing_deps.rb

Summary

Maintainability
A
0 mins
Test Coverage
# Polisher missing_deps cli util
#
# Licensed under the MIT license
# Copyright (C) 2015 Red Hat, Inc.
###########################################################

require 'optparse'

def missing_deps_conf
  conf.merge!(default_conf)
      .merge!(targets_conf)
      .merge!(sources_conf)
end

def missing_deps_parser
  OptionParser.new do |opts|
    default_options opts
    targets_options opts
    sources_options opts
  end
end

def check_missing_deps(source)
  source.dependency_tree(:recursive => true,
                         :dev_deps  => dev_deps?) do |source, dep, resolved_dep|
    versions   = Polisher::VersionChecker.matching_versions(dep)
    alt        = Polisher::VersionChecker.versions_for(dep.name)
    source_str = source.is_a?(Polisher::Gemfile) ? "Gemfile" : "#{source.name} #{source.version}"
    puts "#{source_str} missing dep #{dep.name} #{dep.requirement} - alt versions: #{alt}" if versions.empty?
  end
end

def check_deps(conf)
  check_missing_deps(conf_source) if conf_gem? || conf_gemfile?
end