diff --git a/.travis.yml b/.travis.yml index f92068ba10a..246a806935e 100644 --- a/.travis.yml +++ b/.travis.yml @@ -122,7 +122,7 @@ before_install: fi; - pushd .; cd website; yarn install; popd # install Deno - - curl -fsSL https://deno.land/x/install/install.sh | sh -s v1.1.2 + - sh -s v1.1.2 < ./CI/deno_install.sh - export PATH="$HOME/.deno/bin:$PATH" install: diff --git a/CI/deno_install.sh b/CI/deno_install.sh new file mode 100644 index 00000000000..ebc8fdf1f9f --- /dev/null +++ b/CI/deno_install.sh @@ -0,0 +1,52 @@ +#!/bin/sh +# Copyright 2019 the Deno authors. All rights reserved. MIT license. +# TODO(everyone): Keep this script simple and easily auditable. + +set -e + +if ! command -v unzip >/dev/null; then + echo "Error: unzip is required to install Deno (see: https://github.com/denoland/deno_install#unzip-is-required)." 1>&2 + exit 1 +fi + +if [ "$OS" = "Windows_NT" ]; then + target="x86_64-pc-windows-msvc" +else + case $(uname -s) in + Darwin) target="x86_64-apple-darwin" ;; + *) target="x86_64-unknown-linux-gnu" ;; + esac +fi + +if [ $# -eq 0 ]; then + deno_uri="https://github.com/denoland/deno/releases/latest/download/deno-${target}.zip" +else + deno_uri="https://github.com/denoland/deno/releases/download/${1}/deno-${target}.zip" +fi + +deno_install="${DENO_INSTALL:-$HOME/.deno}" +bin_dir="$deno_install/bin" +exe="$bin_dir/deno" + +if [ ! -d "$bin_dir" ]; then + mkdir -p "$bin_dir" +fi + +curl --fail --location --progress-bar --output "$exe.zip" "$deno_uri" +unzip -d "$bin_dir" -o "$exe.zip" +chmod +x "$exe" +rm "$exe.zip" + +echo "Deno was installed successfully to $exe" +if command -v deno >/dev/null; then + echo "Run 'deno --help' to get started" +else + case $SHELL in + /bin/zsh) shell_profile=".zshrc" ;; + *) shell_profile=".bash_profile" ;; + esac + echo "Manually add the directory to your \$HOME/$shell_profile (or similar)" + echo " export DENO_INSTALL=\"$deno_install\"" + echo " export PATH=\"\$DENO_INSTALL/bin:\$PATH\"" + echo "Run '$exe --help' to get started" +fi