Skip to content

Instantly share code, notes, and snippets.

@sheldonh
Created November 30, 2017 12:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sheldonh/040676cc722f6026f5296d25a6a28289 to your computer and use it in GitHub Desktop.
Save sheldonh/040676cc722f6026f5296d25a6a28289 to your computer and use it in GitHub Desktop.
#!/bin/sh
old_version=$1
new_version=$2
inventory=$(chruby-exec $old_version -- gem list -q | sed -e 's/^\([^ ]*\) (\(.*\))/\1:\2/' -e 's/[:,] */:/g')
for item in $inventory; do
gem=${item%%:*}
versions=${item#*:}
versions=$(echo $versions | sed -e 's/:/ /g')
for version in $versions; do
[ "$version" = "default" ] && continue
if ! chruby-exec $new_version -- gem list -i -v $version $gem >/dev/null; then
chruby-exec $new_version -- gem install --no-document --ignore-dependencies -v $version $gem \
|| echo "Skipped $gem-$version, install failed." 1>&2
else
echo "Skipped $gem-$version, already installed."
fi
done
done
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment