/
opt
/
cpanel
/
ea-ruby27
/
root
/
usr
/
share
/
ruby
/
ruby-2.7.8
/
rubygems
/
commands
/
/opt/cpanel/ea-ruby27/root/usr/share/ruby/ruby-2.7.8/rubygems/commands
mkdir
upload
Name
Size
Mode
Actions
build_command.rb
2702
0644
edit
dl
rm
cert_command.rb
9236
0644
edit
dl
rm
check_command.rb
2282
0644
edit
dl
rm
cleanup_command.rb
4596
0644
edit
dl
rm
contents_command.rb
4152
0644
edit
dl
rm
dependency_command.rb
5263
0644
edit
dl
rm
environment_command.rb
5163
0644
edit
dl
rm
fetch_command.rb
1812
0644
edit
dl
rm
generate_index_command.rb
2981
0644
edit
dl
rm
help_command.rb
10389
0644
edit
dl
rm
info_command.rb
715
0644
edit
dl
rm
install_command.rb
7598
0644
edit
dl
rm
list_command.rb
939
0644
edit
dl
rm
lock_command.rb
2756
0644
edit
dl
rm
mirror_command.rb
625
0644
edit
dl
rm
open_command.rb
2002
0644
edit
dl
rm
outdated_command.rb
853
0644
edit
dl
rm
owner_command.rb
2789
0644
edit
dl
rm
pristine_command.rb
5513
0644
edit
dl
rm
push_command.rb
3692
0644
edit
dl
rm
query_command.rb
9553
0644
edit
dl
rm
rdoc_command.rb
2532
0644
edit
dl
rm
search_command.rb
884
0644
edit
dl
rm
server_command.rb
2434
0644
edit
dl
rm
setup_command.rb
18593
0644
edit
dl
rm
signin_command.rb
891
0644
edit
dl
rm
signout_command.rb
896
0644
edit
dl
rm
sources_command.rb
5639
0644
edit
dl
rm
specification_command.rb
3351
0644
edit
dl
rm
stale_command.rb
964
0644
edit
dl
rm
uninstall_command.rb
5791
0644
edit
dl
rm
unpack_command.rb
4548
0644
edit
dl
rm
update_command.rb
7225
0644
edit
dl
rm
which_command.rb
2145
0644
edit
dl
rm
yank_command.rb
2476
0644
edit
dl
rm
Edit:
/opt/cpanel/ea-ruby27/root/usr/share/ruby/ruby-2.7.8/rubygems/commands/pristine_command.rb
(5513B)
# frozen_string_literal: true require 'rubygems/command' require 'rubygems/package' require 'rubygems/installer' require 'rubygems/version_option' class Gem::Commands::PristineCommand < Gem::Command include Gem::VersionOption def initialize super 'pristine', 'Restores installed gems to pristine condition from files located in the gem cache', :version => Gem::Requirement.default, :extensions => true, :extensions_set => false, :all => false add_option('--all', 'Restore all installed gems to pristine', 'condition') do |value, options| options[:all] = value end add_option('--skip=gem_name', 'used on --all, skip if name == gem_name') do |value, options| options[:skip] ||= [] options[:skip] << value end add_option('--[no-]extensions', 'Restore gems with extensions', 'in addition to regular gems') do |value, options| options[:extensions_set] = true options[:extensions] = value end add_option('--only-executables', 'Only restore executables') do |value, options| options[:only_executables] = value end add_option('-E', '--[no-]env-shebang', 'Rewrite executables with a shebang', 'of /usr/bin/env') do |value, options| options[:env_shebang] = value end add_option('-n', '--bindir DIR', 'Directory where executables are', 'located') do |value, options| options[:bin_dir] = File.expand_path(value) end add_version_option('restore to', 'pristine condition') end def arguments # :nodoc: "GEMNAME gem to restore to pristine condition (unless --all)" end def defaults_str # :nodoc: '--extensions' end def description # :nodoc: <<-EOF The pristine command compares an installed gem with the contents of its cached .gem file and restores any files that don't match the cached .gem's copy. If you have made modifications to an installed gem, the pristine command will revert them. All extensions are rebuilt and all bin stubs for the gem are regenerated after checking for modifications. If the cached gem cannot be found it will be downloaded. If --no-extensions is provided pristine will not attempt to restore a gem with an extension. If --extensions is given (but not --all or gem names) only gems with extensions will be restored. EOF end def usage # :nodoc: "#{program_name} [GEMNAME ...]" end def execute specs = if options[:all] Gem::Specification.map # `--extensions` must be explicitly given to pristine only gems # with extensions. elsif options[:extensions_set] and options[:extensions] and options[:args].empty? Gem::Specification.select do |spec| spec.extensions and not spec.extensions.empty? end else get_all_gem_names.sort.map do |gem_name| Gem::Specification.find_all_by_name(gem_name, options[:version]).reverse end.flatten end specs = specs.select{|spec| RUBY_ENGINE == spec.platform || Gem::Platform.local === spec.platform || spec.platform == Gem::Platform::RUBY } if specs.to_a.empty? raise Gem::Exception, "Failed to find gems #{options[:args]} #{options[:version]}" end say "Restoring gems to pristine condition..." specs.each do |spec| if spec.default_gem? say "Skipped #{spec.full_name}, it is a default gem" next end if options.has_key? :skip if options[:skip].include? spec.name say "Skipped #{spec.full_name}, it was given through options" next end end unless spec.extensions.empty? or options[:extensions] or options[:only_executables] say "Skipped #{spec.full_name}, it needs to compile an extension" next end gem = spec.cache_file unless File.exist? gem or options[:only_executables] require 'rubygems/remote_fetcher' say "Cached gem for #{spec.full_name} not found, attempting to fetch..." dep = Gem::Dependency.new spec.name, spec.version found, _ = Gem::SpecFetcher.fetcher.spec_for_dependency dep if found.empty? say "Skipped #{spec.full_name}, it was not found from cache and remote sources" next end spec_candidate, source = found.first Gem::RemoteFetcher.fetcher.download spec_candidate, source.uri.to_s, spec.base_dir end env_shebang = if options.include? :env_shebang options[:env_shebang] else install_defaults = Gem::ConfigFile::PLATFORM_DEFAULTS['install'] install_defaults.to_s['--env-shebang'] end bin_dir = options[:bin_dir] if options[:bin_dir] installer_options = { :wrappers => true, :force => true, :install_dir => spec.base_dir, :env_shebang => env_shebang, :build_args => spec.build_args, :bin_dir => bin_dir } if options[:only_executables] installer = Gem::Installer.for_spec(spec, installer_options) installer.generate_bin else installer = Gem::Installer.at(gem, installer_options) installer.install end say "Restored #{spec.full_name}" end end end
Save
cmd:
run