mirror of
				https://github.com/ruby/ruby.git
				synced 2022-11-09 12:17:21 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			55 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
			
		
		
	
	
			55 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Ruby
		
	
	
	
	
	
# frozen_string_literal: true
 | 
						|
 | 
						|
require "rbconfig"
 | 
						|
require "fileutils"
 | 
						|
 | 
						|
class OpensslSimulator
 | 
						|
  attr_reader :openssl_rb, :openssl_gemspec, :openssl_ext
 | 
						|
 | 
						|
  def initialize
 | 
						|
    archdir = RbConfig::CONFIG["archdir"]
 | 
						|
    rubylibdir = RbConfig::CONFIG["rubylibdir"]
 | 
						|
    default_specifications_dir = Gem.default_specifications_dir
 | 
						|
 | 
						|
    @openssl_rb = File.join(rubylibdir, "openssl.rb")
 | 
						|
    @openssl_gemspec = Dir.glob("#{default_specifications_dir}/openssl-*.gemspec").first
 | 
						|
 | 
						|
    @openssl_ext = if RUBY_PLATFORM == "java"
 | 
						|
                     File.join(rubylibdir, "jopenssl.jar")
 | 
						|
                   else
 | 
						|
                     File.join(archdir, "openssl.so")
 | 
						|
                   end
 | 
						|
  end
 | 
						|
 | 
						|
  def hide_openssl
 | 
						|
    hide_file openssl_rb
 | 
						|
    hide_file openssl_ext
 | 
						|
    hide_file openssl_gemspec if openssl_gemspec
 | 
						|
  end
 | 
						|
 | 
						|
  def unhide_openssl
 | 
						|
    unhide_file openssl_gemspec if openssl_gemspec
 | 
						|
    unhide_file openssl_ext
 | 
						|
    unhide_file openssl_rb
 | 
						|
  end
 | 
						|
 | 
						|
  private
 | 
						|
 | 
						|
  def hide_file(file)
 | 
						|
    FileUtils.mv file, file + "_"
 | 
						|
  end
 | 
						|
 | 
						|
  def unhide_file(file)
 | 
						|
    FileUtils.mv file + "_", file
 | 
						|
  end
 | 
						|
end
 | 
						|
 | 
						|
if $0 == __FILE__
 | 
						|
  openssl_simulate = OpensslSimulator.new
 | 
						|
 | 
						|
  if ARGV[0] == "--revert"
 | 
						|
    openssl_simulate.unhide_openssl
 | 
						|
  else
 | 
						|
    openssl_simulate.hide_openssl
 | 
						|
  end
 | 
						|
end
 |