Files
wstest/scripts/update-code
T
2025-05-24 14:36:53 +01:00

110 lines
2.0 KiB
Bash
Executable File
Raw Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
#!/bin/bash
set -eo pipefail
source ~/.nvmrc
source ~/.rubyrc
mkdir -p ~/repo/{node,ruby}
PATCH_DIR="$PWD/patches"
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 ~/repo/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 ~/repo/ruby
RUBY_VERSIONS=(
# ruby-1.9
ruby-2.{1..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