zulip/scripts/lib/install-yarn

29 lines
899 B
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
version=1.22.18
sha256=2eb06b1b33398afa85d8cbcbc62bde1cd4c879a0d37d5e246920abf87fc2e2b3
tarball="yarn-$version.tgz"
check_version() {
# Reading the version of Yarn from its package.json is much faster
# than running yarn --version.
link="$(command -v yarn)" \
&& [ "$link" -ef /srv/zulip-yarn/bin/yarn ] \
&& current_version="$(jq -r '.version' /srv/zulip-yarn/package.json)" \
&& [ "$current_version" = "$version" ]
}
if ! check_version; then
tmpdir="$(mktemp -d)"
trap 'rm -r "$tmpdir"' EXIT
cd "$tmpdir"
curl -fLO "https://registry.npmjs.org/yarn/-/$tarball"
sha256sum -c <<<"$sha256 $tarball"
rm -rf /srv/zulip-yarn
mkdir /srv/zulip-yarn
tar -xzf "$tarball" --no-same-owner --strip-components=1 -C /srv/zulip-yarn
ln -nsf /srv/zulip-yarn/bin/yarn /usr/bin/yarn
check_version
fi