#!/usr/bin/env bash set -euo pipefail [ "${DEBUG:-0}" -eq 1 ] && set -x OTP_VSN="${OTP_VSN:-$(./scripts/get-otp-vsn.sh)}" case ${OTP_VSN} in 25*) VERSION="3.19.0-emqx-9" ;; 26*) VERSION="3.20.0-emqx-1" ;; *) echo "Unsupported Erlang/OTP version $OTP_VSN" exit 1 ;; esac # ensure dir cd -P -- "$(dirname -- "${BASH_SOURCE[0]}")/.." DOWNLOAD_URL='https://github.com/emqx/rebar3/releases/download' download() { echo "downloading rebar3 ${VERSION}" curl -f -L "${DOWNLOAD_URL}/${VERSION}/rebar3" -o ./rebar3 } # get the version number from the second line of the escript # because command `rebar3 -v` tries to load rebar.config # which is slow and may print some logs version() { head -n 2 ./rebar3 | tail -n 1 | tr ' ' '\n' | grep -E '^.+-emqx-.+' } if [ -f 'rebar3' ] && [ "$(version)" = "$VERSION" ]; then exit 0 fi download chmod +x ./rebar3