96 lines
2.3 KiB
Bash
96 lines
2.3 KiB
Bash
|
#!/usr/bin/env bash
|
||
|
|
||
|
# Copyright 2020 The Kubernetes Authors.
|
||
|
#
|
||
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
||
|
# you may not use this file except in compliance with the License.
|
||
|
# You may obtain a copy of the License at
|
||
|
#
|
||
|
# http://www.apache.org/licenses/LICENSE-2.0
|
||
|
#
|
||
|
# Unless required by applicable law or agreed to in writing, software
|
||
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||
|
# See the License for the specific language governing permissions and
|
||
|
# limitations under the License.
|
||
|
|
||
|
case "${OSTYPE}" in
|
||
|
linux*)
|
||
|
HOSTOS=linux
|
||
|
;;
|
||
|
darwin*)
|
||
|
HOSTOS=darwin
|
||
|
;;
|
||
|
*)
|
||
|
echo "unsupported HOSTOS=${OSTYPE}" 1>&2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
_hostarch=$(uname -m)
|
||
|
case "${_hostarch}" in
|
||
|
*64*)
|
||
|
HOSTARCH=amd64
|
||
|
;;
|
||
|
*386*)
|
||
|
HOSTARCH=386
|
||
|
;;
|
||
|
*686*)
|
||
|
HOSTARCH=386
|
||
|
;;
|
||
|
*)
|
||
|
echo "unsupported HOSTARCH=${_hostarch}" 1>&2
|
||
|
exit 1
|
||
|
;;
|
||
|
esac
|
||
|
|
||
|
checksum_sha256() {
|
||
|
if command -v shasum >/dev/null 2>&1; then
|
||
|
shasum -a 256 -c "${1}"
|
||
|
elif command -v sha256sum >/dev/null 2>&1; then
|
||
|
sha256sum -c "${1}"
|
||
|
else
|
||
|
echo "missing shasum tool" 1>&2
|
||
|
return 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
get_shasum() {
|
||
|
local present_shasum=''
|
||
|
if command -v shasum >/dev/null 2>&1; then
|
||
|
present_shasum=$(shasum -a 256 "${1}"| awk -F' ' '{print $1}')
|
||
|
elif command -v sha256sum >/dev/null 2>&1; then
|
||
|
present_shasum=$(sha256sum "${1}" | awk -F' ' '{print $1}')
|
||
|
else
|
||
|
echo "missing shasum tool" 1>&2
|
||
|
return 1
|
||
|
fi
|
||
|
echo "$present_shasum"
|
||
|
}
|
||
|
|
||
|
ensure_py3_bin() {
|
||
|
# If given executable is not available, the user Python bin dir is not in path
|
||
|
# This function assumes the executable to be checked was installed with
|
||
|
# pip3 install --user ...
|
||
|
if ! command -v "${1}" >/dev/null 2>&1; then
|
||
|
echo "User's Python3 binary directory must be in \$PATH" 1>&2
|
||
|
echo "Location of package is:" 1>&2
|
||
|
pip3 show --disable-pip-version-check ${2:-$1} | grep "Location"
|
||
|
echo "\$PATH is currently: $PATH" 1>&2
|
||
|
exit 1
|
||
|
fi
|
||
|
}
|
||
|
|
||
|
ensure_py3() {
|
||
|
if ! command -v python3 >/dev/null 2>&1; then
|
||
|
echo "python3 binary must be in \$PATH" 1>&2
|
||
|
exit 1
|
||
|
fi
|
||
|
if ! command -v pip3 >/dev/null 2>&1; then
|
||
|
curl -SsL https://bootstrap.pypa.io/get-pip.py -o get-pip.py
|
||
|
python3 get-pip.py --user
|
||
|
rm -f get-pip.py
|
||
|
ensure_py3_bin pip3
|
||
|
fi
|
||
|
}
|