DEV: add script to switch ruby version from inside container

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

diff --git a/script/switch_container_ruby b/script/switch_container_ruby
new file mode 100644
index 0000000..29e412f
--- /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

GitHub sha: 3f353153

1 Like