#!/usr/bin/env bash set -eo pipefail source shellenv PATCH_DIR="$PWD/patches" mkdir -p "$CODE_DIR"/{node,ruby} checkout () { local dir="$1" local repo="$2" local patch="$PATCH_DIR/$repo.diff" if [[ ! -d "$dir" ]] ; then git clone "https://github.com/faye/$repo.git" "$dir" fi cd "$dir" git fetch origin git reset --hard @{u} git clean -ffdx if [[ -f "$patch" ]] ; then git apply "$patch" fi cd - } cd "$CODE_DIR/node" install-node-modules () { local dir="$1" cd "$dir" rm -rf node_modules package-lock.json npm install --no-save cd - } checkout websocket faye-websocket-node checkout driver websocket-driver-node checkout extensions websocket-extensions-node checkout permessage-deflate permessage-deflate-node install-node-modules websocket install-node-modules driver install-node-modules extensions install-node-modules permessage-deflate link-repo () { local pkg="$1" local dir="$2" if [[ -d "$pkg" ]] ; then rm -rf "$pkg" ln -s "../../$dir" "$pkg" fi } cd driver/node_modules link-repo permessage-deflate permessage-deflate link-repo websocket-extensions extensions cd - cd websocket/node_modules link-repo permessage-deflate permessage-deflate link-repo websocket-driver driver link-repo websocket-extensions extensions cd - cd "$CODE_DIR/ruby" RUBY_VERSIONS=( # ruby-1.9 ruby-2.{3..7} ruby-3.{0..4} # jruby-1.7 jruby-9.{1..4} ) install-ruby-gems () { local dir="$1" cd "$dir" rm -f Gemfile.lock ruby -S bundle install cd - } for version in "${RUBY_VERSIONS[@]}" ; do mkdir -p "$version" chruby "$version" checkout "$version/websocket" faye-websocket-ruby checkout "$version/driver" websocket-driver-ruby checkout "$version/extensions" websocket-extensions-ruby checkout "$version/permessage-deflate" permessage-deflate-ruby install-ruby-gems "$version/websocket" install-ruby-gems "$version/driver" install-ruby-gems "$version/extensions" install-ruby-gems "$version/permessage-deflate" done