mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	 5335ce0e06
			
		
	
	
		5335ce0e06
		
	
	
	
	
		
			
			* Enable Style/MethodDefParentheses in Rubocop
    https://github.com/rubygems/rubygems/pull/2478
  * Enable Style/MultilineIfThen in Rubocop
    https://github.com/rubygems/rubygems/pull/2479
  * Fix required_ruby_version with prereleases and improve error message
    https://github.com/rubygems/rubygems/pull/2344
  * Fix bundler rubygems binstub not properly looking for bundler
    https://github.com/rubygems/rubygems/pull/2426
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65904 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
		
	
			
		
			
				
	
	
		
			94 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			94 lines
		
	
	
	
		
			2.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
| # frozen_string_literal: true
 | |
| require 'rubygems/command'
 | |
| require 'rubygems/version_option'
 | |
| require 'rubygems/validator'
 | |
| require 'rubygems/doctor'
 | |
| 
 | |
| class Gem::Commands::CheckCommand < Gem::Command
 | |
| 
 | |
|   include Gem::VersionOption
 | |
| 
 | |
|   def initialize
 | |
|     super 'check', 'Check a gem repository for added or missing files',
 | |
|           :alien => true, :doctor => false, :dry_run => false, :gems => true
 | |
| 
 | |
|     add_option('-a', '--[no-]alien',
 | |
|                'Report "unmanaged" or rogue files in the',
 | |
|                'gem repository') do |value, options|
 | |
|       options[:alien] = value
 | |
|     end
 | |
| 
 | |
|     add_option('--[no-]doctor',
 | |
|                'Clean up uninstalled gems and broken',
 | |
|                'specifications') do |value, options|
 | |
|       options[:doctor] = value
 | |
|     end
 | |
| 
 | |
|     add_option('--[no-]dry-run',
 | |
|                'Do not remove files, only report what',
 | |
|                'would be removed') do |value, options|
 | |
|       options[:dry_run] = value
 | |
|     end
 | |
| 
 | |
|     add_option('--[no-]gems',
 | |
|                'Check installed gems for problems') do |value, options|
 | |
|       options[:gems] = value
 | |
|     end
 | |
| 
 | |
|     add_version_option 'check'
 | |
|   end
 | |
| 
 | |
|   def check_gems
 | |
|     say 'Checking gems...'
 | |
|     say
 | |
|     gems = get_all_gem_names rescue []
 | |
| 
 | |
|     Gem::Validator.new.alien(gems).sort.each do |key, val|
 | |
|       unless val.empty?
 | |
|         say "#{key} has #{val.size} problems"
 | |
|         val.each do |error_entry|
 | |
|           say "  #{error_entry.path}:"
 | |
|           say "    #{error_entry.problem}"
 | |
|         end
 | |
|       else
 | |
|         say "#{key} is error-free" if Gem.configuration.verbose
 | |
|       end
 | |
|       say
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def doctor
 | |
|     say 'Checking for files from uninstalled gems...'
 | |
|     say
 | |
| 
 | |
|     Gem.path.each do |gem_repo|
 | |
|       doctor = Gem::Doctor.new gem_repo, options[:dry_run]
 | |
|       doctor.doctor
 | |
|     end
 | |
|   end
 | |
| 
 | |
|   def execute
 | |
|     check_gems if options[:gems]
 | |
|     doctor if options[:doctor]
 | |
|   end
 | |
| 
 | |
|   def arguments # :nodoc:
 | |
|     'GEMNAME       name of gem to check'
 | |
|   end
 | |
| 
 | |
|   def defaults_str # :nodoc:
 | |
|     '--gems --alien'
 | |
|   end
 | |
| 
 | |
|   def description # :nodoc:
 | |
|     <<-EOF
 | |
| The check command can list and repair problems with installed gems and
 | |
| specifications and will clean up gems that have been partially uninstalled.
 | |
|     EOF
 | |
|   end
 | |
| 
 | |
|   def usage # :nodoc:
 | |
|     "#{program_name} [OPTIONS] [GEMNAME ...]"
 | |
|   end
 | |
| 
 | |
| end
 |