From 3f35315391429c4311134eea58e6b268275878d1 Mon Sep 17 00:00:00 2001 From: Sam Saffron Date: Mon, 25 Mar 2019 17:41:24 +1100 Subject: [PATCH] DEV: add script to switch ruby version from inside container This script can be used to flip Ruby to a patched Ruby version or a different major version from inside the container It is used to test and compare different Ruby versions --- script/switch_container_ruby | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 script/switch_container_ruby diff --git a/script/switch_container_ruby b/script/switch_container_ruby new file mode 100644 index 00000000000..29e412fce6c --- /dev/null +++ b/script/switch_container_ruby @@ -0,0 +1,52 @@ +#!/bin/bash + +#use this command to switch the running version of Ruby +set -e + +old_pwd=`pwd` + +if [[ -z "$1" || ( ! -z "$2" && ! -f "$2" ) ]]; then + echo "Usage: switch_container_ruby VERSION PATCH_FILE" + exit 1; +fi + +if [ ! -f /VERSION ]; then + echo "Script is intended to be executed from inside the official docker container only!" + exit 1; +fi + + +sv stop unicorn + +cd /src + +git clone https://github.com/sstephenson/ruby-build.git +cd /src/ruby-build +./install.sh +cd / +rm -rf /src/ruby-build + +rm -f /usr/local/bin/rake +rm -f /usr/local/bin/ruby +rm -f /usr/local/bin/ri +rm -f /usr/local/bin/rdoc +rm -f /usr/local/bin/gem +rm -f /usr/local/bin/erb +rm -f /usr/local/bin/bundle +rm -f /usr/local/bin/bundler + +if [[ -z "$2" ]]; then + ruby-build $1 /usr/local +else + cd $old_pwd + (ruby-build $1 /usr/local -p < $2) +fi + +gem update --system +gem install bundler --force +cd /var/www/discourse + +su discourse -c 'bundle install --deployment --verbose --without test --without development --retry 3 --jobs 4' + +sv start unicorn +cd $pwd