mirror of
https://github.com/zulip/zulip.git
synced 2025-11-04 22:13:26 +00:00
Apparently, new versions of yarn use the HOME environment variable to
figure out where to access their configuration, and sudo apparently
doesn't clear that variable, so install-node was being run with HOME
set to something under /home/vagrant (e.g.).
Fix this by just setting that environment variable correctly.
This replaces 250a036ff8, which
misdiagnosed the issue.
52 lines
1.6 KiB
Bash
Executable File
52 lines
1.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -e
|
|
|
|
ZULIP_PATH="$(dirname "$0")/../.."
|
|
ZULIP_SRV="/srv"
|
|
if [ "$TRAVIS" ] ; then
|
|
ZULIP_SRV="/home/travis"
|
|
fi
|
|
YARN_BIN="$ZULIP_SRV/zulip-yarn/bin/yarn"
|
|
node_version=8.11.1
|
|
yarn_version=0.27.5
|
|
|
|
current_node_version="none"
|
|
if hash node 2>/dev/null; then
|
|
current_node_version="$(node --version)"
|
|
fi
|
|
|
|
if [ "$($YARN_BIN --version 2>/dev/null)" = "$yarn_version" ] && [ "$current_node_version" = "v$node_version" ]; then
|
|
echo "Node version $node_version and yarn version $yarn_version are already installed."
|
|
exit 0
|
|
fi
|
|
|
|
if [ "$current_node_version" != "v$node_version" ]; then
|
|
export NVM_DIR=/usr/local/nvm
|
|
if ! [ -e "$NVM_DIR/nvm.sh" ]; then
|
|
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.33.8/install.sh | bash
|
|
fi
|
|
|
|
source "$NVM_DIR/nvm.sh"
|
|
nvm install "$node_version" && nvm alias default "$node_version"
|
|
export NODE_BIN="$(nvm which default)"
|
|
|
|
# Fix messed-up uid=500 and group write bits produced by nvm
|
|
n=$(which node)
|
|
n=${n%/bin/node}
|
|
chown -R root:root "$n"
|
|
chmod -R go-w "$n"
|
|
|
|
# Install node wrapper to /usr/local/bin
|
|
cp "$ZULIP_PATH/scripts/setup/node-wrapper" /usr/local/bin/node
|
|
sed -i "s|NODE_PATH|$NODE_BIN|" /usr/local/bin/node
|
|
fi
|
|
|
|
# Work around the fact that apparently sudo doesn't clear the HOME
|
|
# environment variable in some cases; we don't want root
|
|
# accessing/storing yarn configuration in the non-root user's home
|
|
# directory.
|
|
export HOME=/root
|
|
|
|
# Install yarn if not installed
|
|
bash "$ZULIP_PATH/scripts/lib/third/install-yarn.sh" "$ZULIP_SRV" --version "$yarn_version"
|