class Overcommit::Hook::PreCommit::BundleCheck
Check if local Gemfile.lock matches Gemfile when either changes, unless Gemfile.lock is ignored by git.
@see bundler.io/
Constants
- LOCK_FILE
Public Instance Methods
run()
click to toggle source
# File lib/overcommit/hook/pre_commit/bundle_check.rb, line 11 def run # Ignore if Gemfile.lock is not tracked by git ignored_files = execute(%w[git ls-files -o -i --exclude-standard]).stdout.split("\n") return :pass if ignored_files.include?(LOCK_FILE) previous_lockfile = File.read(LOCK_FILE) if File.exist?(LOCK_FILE) result = execute(command) unless result.success? return :fail, result.stdout end new_lockfile = File.read(LOCK_FILE) if File.exist?(LOCK_FILE) if previous_lockfile != new_lockfile return :fail, "#{LOCK_FILE} is not up-to-date -- run \ `#{command.join(' ')}` or add the Gemfile and/or Gemfile.lock".squeeze end :pass end