#!/usr/bin/env bash set -euo pipefail version=1.22.10 sha256=05a22fff30d7d8e8005bed277bf20d55111ba2bed65a6b91a0fcd1307b71fd8d 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)" \ && bin="$(readlink -f "$link")" \ && current_version="$(jq -r '.version' "${bin%/*/*}/package.json")" \ && [ "$current_version" = "$version" ] } if ! check_version; then tmpdir="$(mktemp -d)" trap 'rm -r "$tmpdir"' EXIT cd "$tmpdir" curl -LO "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