ClusterAPI.imageBuilder/hack/utils.sh
Danny Bessems f2b0a5e7c7
Some checks failed
continuous-integration/drone Build is failing
Test dependencies
2023-02-22 21:24:42 +01:00

96 lines
2.3 KiB
Bash
Executable File

#!/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
}