From 1b2bda72fcb765c0a1ca8991ad840d37ac27198d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Rodr=C3=ADguez?= Date: Sun, 12 Jul 2020 12:35:57 +0200 Subject: [PATCH] [rubygems/rubygems] Extend the script to allow reverting the patch when tried locally https://github.com/rubygems/rubygems/commit/00ebf8c9f7 --- util/remove_openssl.rb | 60 +++++++++++++++++++++++++++++++++--------- 1 file changed, 47 insertions(+), 13 deletions(-) diff --git a/util/remove_openssl.rb b/util/remove_openssl.rb index c47e335391..a98f227f28 100644 --- a/util/remove_openssl.rb +++ b/util/remove_openssl.rb @@ -3,19 +3,53 @@ require "rbconfig" require "fileutils" -archdir = RbConfig::CONFIG["archdir"] -rubylibdir = RbConfig::CONFIG["rubylibdir"] -default_specifications_dir = Gem.default_specifications_dir +class OpensslSimulator + attr_reader :openssl_rb, :openssl_gemspec, :openssl_ext -openssl_rb = File.join(rubylibdir, "openssl.rb") -openssl_gemspec = Dir.glob("#{default_specifications_dir}/openssl-*.gemspec").first + def initialize + archdir = RbConfig::CONFIG["archdir"] + rubylibdir = RbConfig::CONFIG["rubylibdir"] + default_specifications_dir = Gem.default_specifications_dir -openssl_ext = if RUBY_PLATFORM == "java" - File.join(rubylibdir, "jopenssl.jar") - else - File.join(archdir, "openssl.so") - end + @openssl_rb = File.join(rubylibdir, "openssl.rb") + @openssl_gemspec = Dir.glob("#{default_specifications_dir}/openssl-*.gemspec").first -FileUtils.mv openssl_rb, openssl_rb + "_" -FileUtils.mv openssl_ext, openssl_ext + "_" -FileUtils.mv openssl_gemspec, openssl_gemspec + "_" if openssl_gemspec + @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