mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-01 15:57:20 +00:00
Fix the outstanding scripts using non standard shell here document delimiters. This should have been caught by https://github.com/kata-containers/tests/pull/3937, but there is a bug in the checker which is fixed on https://github.com/kata-containers/tests/pull/4569. Fixes: #3864. Signed-off-by: James O. D. Hunt <james.o.hunt@intel.com>
101 lines
1.8 KiB
Bash
Executable File
101 lines
1.8 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
#
|
|
# Copyright (c) 2018 Intel Corporation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
#
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
tmp_dir=$(mktemp -d -t install-go-tmp.XXXXXXXXXX)
|
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
script_name="$(basename "${BASH_SOURCE[0]}")"
|
|
force=""
|
|
|
|
install_dest="/usr/local/"
|
|
|
|
finish() {
|
|
rm -rf "$tmp_dir"
|
|
}
|
|
|
|
die() {
|
|
echo >&2 "ERROR: $*"
|
|
exit 1
|
|
}
|
|
|
|
info() {
|
|
echo "INFO: $*"
|
|
}
|
|
|
|
usage(){
|
|
exit_code="$1"
|
|
cat <<EOF
|
|
Usage:
|
|
|
|
${script_name} [options]
|
|
|
|
Example:
|
|
${script_name}
|
|
|
|
Options
|
|
-d <path> : destination path, path where go will be installed.
|
|
-f : enable force install, remove existent go pkg before installation.
|
|
-h : display this help.
|
|
EOF
|
|
|
|
exit "$exit_code"
|
|
}
|
|
|
|
trap finish EXIT
|
|
|
|
pushd "${tmp_dir}"
|
|
|
|
while getopts "d:fh" opt
|
|
do
|
|
case $opt in
|
|
d) install_dest="${OPTARG}" ;;
|
|
f) force="true" ;;
|
|
h) usage 0 ;;
|
|
esac
|
|
done
|
|
|
|
shift $(( $OPTIND - 1 ))
|
|
|
|
|
|
go_version=${1:-}
|
|
|
|
if [ -z "$go_version" ];then
|
|
echo "Missing go"
|
|
usage 1
|
|
fi
|
|
|
|
if command -v go; then
|
|
[[ "$(go version)" == *"go${go_version}"* ]] && \
|
|
info "Go ${go_version} already installed" && \
|
|
exit
|
|
if [ "${force}" = "true" ]; then
|
|
info "removing $(go version)"
|
|
sudo rm -rf "${install_dest}/go"
|
|
else
|
|
die "$(go version) is installed, use -f or remove it before install go ${go_version}"
|
|
fi
|
|
fi
|
|
|
|
case "$(uname -m)" in
|
|
aarch64) goarch="arm64";;
|
|
ppc64le) goarch="ppc64le";;
|
|
x86_64) goarch="amd64";;
|
|
s390x) goarch="s390x";;
|
|
*) echo "unsupported architecture: $(uname -m)"; exit 1;;
|
|
esac
|
|
|
|
info "Download go version ${go_version}"
|
|
kernel_name=$(uname -s)
|
|
curl -OL "https://storage.googleapis.com/golang/go${go_version}.${kernel_name,,}-${goarch}.tar.gz"
|
|
info "Install go"
|
|
mkdir -p "${install_dest}"
|
|
sudo tar -C "${install_dest}" -xzf "go${go_version}.${kernel_name,,}-${goarch}.tar.gz"
|
|
popd
|