Sha256: 34bb445041f901ade86c2c30ad7430e510d2613a21d1cfff4fd66b2b6e0ef119

Contents?: true

Size: 1.24 KB

Versions: 42

Compression:

Stored size: 1.24 KB

Contents

#!/usr/bin/env ruby

require_relative "../../version_policy"

old_version, new_version = ARGV[0..1]

require "set"
ENV["BUNDLE_WITHOUT"] = INSTALL_WITHOUT_GROUPS.join(":")
relevant_gems = Set.new
`bundle list`.each_line do |line|
  next unless line =~ /^  \* (\S+)/
  relevant_gems.add($1)
end

old_gems = {}
old_file = `git show #{old_version}:Gemfile.lock`
old_file.each_line do |line|
  next unless line =~ /^    (\S+) \(([^\)]+)\)$/
  next unless relevant_gems.include?($1)
  old_gems[$1] = $2
end

new_gems = {}
new_file = `git show #{new_version}:Gemfile.lock`
new_file.each_line do |line|
  next unless line =~ /^    (\S+) \(([^\)]+)\)$/
  next unless relevant_gems.include?($1)
  new_gems[$1] = $2
end

modified_gems = (old_gems.keys & new_gems.keys).sort.select { |name| new_gems[name] != old_gems[name] }.map { |name| "#{name} - #{new_gems[name]} (was #{old_gems[name]})" }
removed_gems = (old_gems.keys - new_gems.keys).sort.map { |name| "#{name} - #{old_gems[name]}" }
added_gems = (new_gems.keys - old_gems.keys).sort.map { |name| "#{name} - #{new_gems[name]}" }

puts "MODIFIED:\n#{modified_gems.join("\n")}" if modified_gems.any?
puts "\nADDED:\n#{added_gems.join("\n")}" if added_gems.any?
puts "\nREMOVED:\n#{removed_gems.join("\n")}" if removed_gems.any?

Version data entries

42 entries across 42 versions & 1 rubygems

Version Path
chef-12.22.5 tasks/bin/gem-version-diff
chef-12.22.5-universal-mingw32 tasks/bin/gem-version-diff
chef-12.22.3 tasks/bin/gem-version-diff
chef-12.22.3-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.31 tasks/bin/gem-version-diff
chef-12.21.31-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.26 tasks/bin/gem-version-diff
chef-12.21.26-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.20-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.20 tasks/bin/gem-version-diff
chef-12.21.14-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.14 tasks/bin/gem-version-diff
chef-12.21.12-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.12 tasks/bin/gem-version-diff
chef-12.21.10 tasks/bin/gem-version-diff
chef-12.21.10-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.4 tasks/bin/gem-version-diff
chef-12.21.4-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.1-universal-mingw32 tasks/bin/gem-version-diff
chef-12.21.1 tasks/bin/gem-version-diff