diff options
| author | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-01-09 11:11:53 +0900 |
|---|---|---|
| committer | Nobuyoshi Nakada <nobu@ruby-lang.org> | 2024-01-09 16:42:20 +0900 |
| commit | 72a78ecd3371ff08ad2c9aa10f5ae16ee8645c32 (patch) | |
| tree | 901114ae1e9b144ad94c4f488a0761b657b3c43b | |
| parent | bf108636dff335903751d5a4e15d2293d7b9293f (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-x | tool/outdate-bundled-gems.rb | 10 |
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 |
