#!/usr/bin/env bash set -euo pipefail version=1.22.11 sha256=2c320de14a6014f62d29c34fec78fdbb0bc71c9ccba48ed0668de452c1f5fe6c 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 -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