mirror of https://github.com/sbt/sbt.git
106 lines
2.6 KiB
Bash
Executable File
106 lines
2.6 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
#
|
|
# coursier launcher setup script
|
|
# See https://github.com/coursier/ci-scripts
|
|
#
|
|
|
|
|
|
set -e
|
|
|
|
coursier_version="2.0.0-RC6-24"
|
|
for_graalvm="false"
|
|
dest="cs"
|
|
|
|
# Adapted from https://github.com/paulp/sbt-extras/blob/ea47026bd55439760f4c5e9b27b002fa64a8b82f/sbt#L427-L435 and around
|
|
die() {
|
|
echo "Aborting: $*"
|
|
exit 1
|
|
}
|
|
process_args() {
|
|
require_arg() {
|
|
local type="$1"
|
|
local opt="$2"
|
|
local arg="$3"
|
|
|
|
if [[ -z "$arg" ]] || [[ "${arg:0:1}" == "-" ]]; then
|
|
die "$opt requires <$type> argument"
|
|
fi
|
|
}
|
|
parsing_args="true"
|
|
while [[ $# -gt 0 && "$parsing_args" == "true" ]]; do
|
|
case "$1" in
|
|
--version) require_arg version "$1" "$2" && coursier_version="$2" && shift 2 ;;
|
|
--dest) require_arg path "$1" "$2" && dest="$2" && shift 2 ;;
|
|
--graalvm) for_graalvm="true" && shift ;;
|
|
*) die "Unexpected argument: '$1'" ;;
|
|
esac
|
|
done
|
|
}
|
|
|
|
process_args "$@"
|
|
|
|
|
|
do_chmod="1"
|
|
ext=""
|
|
setenv_bat="0"
|
|
|
|
# https://stackoverflow.com/questions/3466166/how-to-check-if-running-in-cygwin-mac-or-linux/17072017#17072017
|
|
if [ "$(expr substr $(uname -s) 1 5 2>/dev/null)" == "Linux" ]; then
|
|
cs_url="https://github.com/coursier/coursier/releases/download/v$coursier_version/cs-x86_64-pc-linux"
|
|
cache_base="$HOME/.cache/coursier/v1"
|
|
elif [ "$(uname)" == "Darwin" ]; then
|
|
cs_url="https://github.com/coursier/coursier/releases/download/v$coursier_version/cs-x86_64-apple-darwin"
|
|
cache_base="$HOME/Library/Caches/Coursier/v1"
|
|
else
|
|
# assuming Windows…
|
|
cs_url="https://github.com/coursier/coursier/releases/download/v$coursier_version/cs-x86_64-pc-win32.exe"
|
|
cache_base="$LOCALAPPDATA/Coursier/v1" # TODO Check that
|
|
ext=".exe"
|
|
do_chmod="0"
|
|
|
|
if [ "$for_graalvm" = "true" ]; then
|
|
choco install -y windows-sdk-7.1 vcbuildtools kb2519277
|
|
setenv_bat="1"
|
|
fi
|
|
fi
|
|
|
|
cache_dest="$cache_base/$(echo "$cs_url" | sed 's@://@/@')"
|
|
|
|
if [ -f "$cache_dest" ]; then
|
|
echo "Found $cache_dest in cache"
|
|
else
|
|
mkdir -p "$(dirname "$cache_dest")"
|
|
tmp_dest="$cache_dest.tmp-setup"
|
|
echo "Downloading $cs_url"
|
|
curl -Lo "$tmp_dest" "$cs_url"
|
|
mv "$tmp_dest" "$cache_dest"
|
|
fi
|
|
|
|
if [ "$setenv_bat" = "1" ]; then
|
|
cp "$cache_dest" ".$dest$ext"
|
|
"./.$dest$ext" --help
|
|
if [ "$do_chmod" = "1" ]; then
|
|
chmod +x ".$dest$ext"
|
|
fi
|
|
cat > "$dest.bat" << EOF
|
|
@call "C:\\Program Files\\Microsoft SDKs\\Windows\\v7.1\\Bin\\SetEnv.Cmd"
|
|
%~dp0.$dest$ext %*
|
|
EOF
|
|
# that one is for bash
|
|
cat > "$dest" << EOF
|
|
#!/usr/bin/env bash
|
|
set -e
|
|
exec $(pwd)/$dest.bat "\$@"
|
|
EOF
|
|
chmod +x "$dest" || true
|
|
else
|
|
cp "$cache_dest" "$dest$ext"
|
|
if [ "$do_chmod" = "1" ]; then
|
|
chmod +x "$dest$ext"
|
|
fi
|
|
fi
|
|
|
|
export PATH=".:$PATH"
|
|
"$dest" --help
|