48 lines
1.4 KiB
Bash
Executable File
48 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -uo pipefail
|
|
|
|
[ "$#" -gt 1 ] && log_error "Need 1 version instead of $#" 'usage: dctlenv install [<version>]'
|
|
|
|
version_requested="${1:-""}"
|
|
[ -n "$version_requested" ] || log_error 'Version is not specified' 'usage: dctlenv install [<version>]'
|
|
|
|
version="$(dctlenv-list-remote | grep "$version_requested" | head -n 1)"
|
|
[ -n "$version" ] || log_error "No version $version_requested found in remote"
|
|
|
|
dst_path="$DCTLENV_ROOT/versions/$version"
|
|
if [ -f "$dst_path/driftctl" ]; then
|
|
echo "driftctl v$version is already installed"
|
|
exit 0
|
|
fi
|
|
|
|
DCTLENV_ARCH="${DCTLENV_ARCH:-amd64}"
|
|
case "$(uname -s)" in
|
|
Darwin*)
|
|
os="darwin_$DCTLENV_ARCH"
|
|
;;
|
|
MINGW64*)
|
|
os="windows_$DCTLENV_ARCH"
|
|
;;
|
|
MSYS_NT*)
|
|
os="windows_$DCTLENV_ARCH"
|
|
;;
|
|
CYGWIN_NT*)
|
|
os="windows_$DCTLENV_ARCH"
|
|
;;
|
|
*)
|
|
os="linux_$DCTLENV_ARCH"
|
|
;;
|
|
esac
|
|
|
|
driftctl_url="https://github.com/cloudskiff/driftctl/releases/download"
|
|
|
|
echo "Installing driftctl v$version"
|
|
|
|
echo "Downloading release tarball from $driftctl_url/v$version/driftctl_$os"
|
|
$(curlw -# -f -L -o "$dst_path/driftctl" --create-dirs "$driftctl_url/v$version/driftctl_$os") || log_error 'Tarball download failed'
|
|
|
|
echo "Making the $dst_path/driftctl binary executable"
|
|
$(chmod +x "$dst_path/driftctl") || log_error "Fail to make the binary executable"
|
|
|
|
echo "Installation of driftctl v${version} successful. To make this your default version, run 'dctlenv use ${version}'"
|