Add script to upgrade bundler to Gemfile version

Useful to sync your bundler version or the CI bundler version with the
rest of the team.
This commit is contained in:
Maikel Linke
2017-06-30 11:54:08 +10:00
committed by Maikel
parent 327753b7ca
commit 3f2299e52e

29
script/upgrade_bundler.sh Executable file
View File

@@ -0,0 +1,29 @@
#!/bin/sh
# This shell script looks for the last used Bundler version in Gemfile.lock and
# installs exactly that version, removing other versions.
# Fail if a single command fails.
set -e
# `grep -m 1`: find the first occurrence of "BUNDLED WITH"
# `-A`: print the next line after "BUNDLED WITH" as well
# `-x -F`: find exactly that string without interpreting regex
# `tail -n 1`: take the last line, the version line
# `tr -d`: delete all spaces, the indent before the version
version="$(grep -m 1 -A 1 -x -F "BUNDLED WITH" Gemfile.lock | tail -n 1 | tr -d '[:space:]')"
if [ -z "$version" ]; then
echo "No bundler version in Gemfile.lock."
exit 1
fi
current="$(bundler --version)"
if [ "$current" = "Bundler version $version" ]; then
echo "Already up-to-date: $current"
exit 0
fi
gem install bundler -v "$version"
gem cleanup bundler