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 | ||
|  | } |