summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNobuyoshi Nakada <nobu@ruby-lang.org>2024-01-09 11:11:53 +0900
committerNobuyoshi Nakada <nobu@ruby-lang.org>2024-01-09 16:42:20 +0900
commit72a78ecd3371ff08ad2c9aa10f5ae16ee8645c32 (patch)
tree901114ae1e9b144ad94c4f488a0761b657b3c43b
parentbf108636dff335903751d5a4e15d2293d7b9293f (diff)
outdate-bundled-gems.rb: Add `--all` option
Unless this option is given, keep other gems that may be used by `test-bundled-gems`.
-rwxr-xr-xtool/outdate-bundled-gems.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/tool/outdate-bundled-gems.rb b/tool/outdate-bundled-gems.rb
index c7583ed67e..0bf0eca1e3 100755
--- a/tool/outdate-bundled-gems.rb
+++ b/tool/outdate-bundled-gems.rb
@@ -24,6 +24,8 @@ until ARGV.empty?
ruby_version = $1
when /\A--only=(?:(curdir|srcdir)|all)\z/im
only = $1&.downcase
+ when /\A--all\z/im
+ all = true
when /\A-/
raise "#{$0}: unknown option: #{ARGV.first}"
else
@@ -91,8 +93,14 @@ end
srcdir = Removal.new(ARGV.shift)
curdir = !srcdir.base || File.identical?(srcdir.base, ".") ? srcdir : Removal.new
+unless all
+ bundled = File.read("#{srcdir.base}gems/bundled_gems").scan(/^(\w\S+)\s+(\S+)/).to_h rescue nil
+end
+
srcdir.glob(".bundle/gems/*/") do |dir|
- unless srcdir.exist?("gems/#{File.basename(dir)}.gem")
+ base = File.basename(dir)
+ next if bundled && !bundled.key?(base[/\A.+(?=-)/])
+ unless srcdir.exist?("gems/#{base}.gem")
srcdir.rmdir(dir)
end
end