mirror of
https://github.com/openfoodfoundation/openfoodnetwork
synced 2026-01-25 20:46:48 +00:00
The --max-count option tells grep to stop reading lines after the first matching line. We're looking for the line AFTER the first matching line.
43 lines
1.4 KiB
Bash
Executable File
43 lines
1.4 KiB
Bash
Executable File
#!/bin/sh
|
|
|
|
# This shell script looks for the last used Bundler version in Gemfile.lock and
|
|
# installs exactly that version, removing all other versions.
|
|
|
|
# Command line arguments are passed on to `gem install`. So you can call this
|
|
# script with with arguments:
|
|
#
|
|
# ./script/install-bundler --no-ri --no-rdoc
|
|
|
|
# This script is used by ofn-install and can by handy in your development
|
|
# environment.
|
|
|
|
# Fail if a single command fails.
|
|
set -e
|
|
|
|
# `grep`: find the occurrences of "BUNDLED WITH" (-m is unnecessary and behaves different on macOS)
|
|
# `-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 -A 1 -x -F "BUNDLED WITH" Gemfile.lock | tail -n 1 | tr -d '[:space:]')"
|
|
|
|
# if the length of $version is zero
|
|
if [ -z "$version" ]; then
|
|
echo >&2 "No bundler version in Gemfile.lock."
|
|
exit 1
|
|
fi
|
|
|
|
# Get the currently used bundler version.
|
|
# We ignore all errors with `2>/dev/null || true` in case there is no bundler
|
|
# or only an orphaned shim installed.
|
|
current="$(bundler --version 2>/dev/null || true)"
|
|
|
|
if [ "$current" = "Bundler version $version" ]; then
|
|
echo >&2 "Already up-to-date: $current"
|
|
exit 0
|
|
fi
|
|
|
|
# Passing on all arguments of this script with "$@".
|
|
gem install bundler -v "$version" "$@"
|
|
gem uninstall bundler -v "!= $version" 2>/dev/null || true
|