2022-01-18 00:34:38 +08:00
|
|
|
#!/bin/bash
|
2022-06-22 14:04:59 +08:00
|
|
|
set -e pipefail
|
2022-01-18 00:34:38 +08:00
|
|
|
|
|
|
|
main() {
|
|
|
|
export MAKEFLAGS=-j$(getconf _NPROCESSORS_ONLN)
|
2022-09-02 18:03:32 +08:00
|
|
|
elixir_vsn="${elixir_vsn:-1.14.0}"
|
2022-01-18 00:34:38 +08:00
|
|
|
|
2022-09-02 18:03:32 +08:00
|
|
|
mkdir -p tmp/cache
|
|
|
|
. .github/scripts/app/bootstrap_otp_mac.sh
|
2022-01-18 00:34:38 +08:00
|
|
|
|
2022-09-02 18:03:32 +08:00
|
|
|
elixir_dir="$PWD/tmp/cache/elixir-${elixir_vsn}"
|
2022-06-22 14:04:59 +08:00
|
|
|
if [ ! -d "${elixir_dir}" ]; then
|
2022-09-02 18:03:32 +08:00
|
|
|
build_elixir $elixir_vsn $elixir_dir
|
2022-01-18 00:34:38 +08:00
|
|
|
fi
|
|
|
|
|
2022-06-22 14:04:59 +08:00
|
|
|
export PATH="${elixir_dir}/bin:$PATH"
|
2022-06-02 04:29:54 +08:00
|
|
|
echo "checking elixir"
|
2022-01-18 00:34:38 +08:00
|
|
|
elixir --version
|
2022-09-02 18:03:32 +08:00
|
|
|
echo "elixir ok"
|
2022-01-18 00:34:38 +08:00
|
|
|
}
|
|
|
|
|
2022-09-02 18:03:32 +08:00
|
|
|
# build_elixir $vsn $dest_dir
|
2022-01-18 00:34:38 +08:00
|
|
|
build_elixir() {
|
|
|
|
vsn=$1
|
2022-09-02 18:03:32 +08:00
|
|
|
dest_dir=$2
|
2022-01-18 00:34:38 +08:00
|
|
|
otp_release=$(erl -noshell -eval 'io:format("~s", [erlang:system_info(otp_release)]), halt().')
|
|
|
|
|
|
|
|
cd tmp
|
|
|
|
url=https://repo.hex.pm/builds/elixir/v${vsn}-otp-${otp_release}.zip
|
|
|
|
curl --fail -LO $url
|
2022-09-02 18:03:32 +08:00
|
|
|
mkdir -p $dest_dir
|
|
|
|
unzip -q v${vsn}-otp-${otp_release}.zip -d $dest_dir
|
|
|
|
cd - > /dev/null
|
2022-01-18 00:34:38 +08:00
|
|
|
}
|
|
|
|
|
|
|
|
main
|