diff options
Diffstat (limited to 'omnibus/config')
-rw-r--r-- | omnibus/config/software/more-ruby-cleanup.rb | 31 |
1 files changed, 30 insertions, 1 deletions
diff --git a/omnibus/config/software/more-ruby-cleanup.rb b/omnibus/config/software/more-ruby-cleanup.rb index 7fab72fca2..f2176dff68 100644 --- a/omnibus/config/software/more-ruby-cleanup.rb +++ b/omnibus/config/software/more-ruby-cleanup.rb @@ -78,4 +78,33 @@ build do FileUtils.rm_rf(f) end end -end
\ No newline at end of file + + block "Removing Gemspec / Rakefile / Gemfile unless there's a bin dir / not a chef gem" do + # find the embedded ruby gems dir and clean it up for globbing + target_dir = "#{install_dir}/embedded/lib/ruby/gems/*/gems".tr('\\', "/") + files = %w{ + *.gemspec + Gemfile + Rakefile + tasks/*.rake + } + + Dir.glob(Dir.glob("#{target_dir}/*/{#{files.join(",")}}")).each do |f| + # don't delete these files if there's a bin dir in the same dir or we're in a chef owned gem + next if Dir.exist?(File.join(File.dirname(f), "bin")) || File.basename(File.expand_path("..", f)).start_with?("chef-") + + puts "Deleting #{f}" + FileUtils.rm_rf(f) + end + end + + block "Removing spec dirs from non-Chef gems" do + Dir.glob(Dir.glob("#{install_dir}/embedded/lib/ruby/gems/*/gems/*/spec".tr('\\', "/"))).each do |f| + # if we're in a chef- gem then don't remove the specs + next if File.basename(File.expand_path("..", f)).start_with?("chef-") + + puts "Deleting #{f}" + FileUtils.rm_rf(f) + end + end +end |