mirror of
https://github.com/faye/wstest.git
synced 2025-11-01 13:58:47 +00:00
109 lines
2.1 KiB
Bash
Executable File
109 lines
2.1 KiB
Bash
Executable File
#!/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
|