mirror of https://github.com/lework/script
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
1.8 KiB
102 lines
1.8 KiB
|
|
|
|
util::download_file() { |
|
local -r url=$1 |
|
local -r destination_file=$2 |
|
|
|
rm "${destination_file}" 2&> /dev/null || true |
|
|
|
for i in $(seq 5) |
|
do |
|
if ! curl -fsSL --retry 3 --keepalive-time 2 "${url}" -o "${destination_file}"; then |
|
echo "Downloading ${url} failed. $((5-i)) retries left." |
|
sleep 1 |
|
else |
|
echo "Downloading ${url} succeed" |
|
return 0 |
|
fi |
|
done |
|
return 1 |
|
} |
|
|
|
|
|
# Example: util::wait_for_success 120 5 "kubectl get nodes|grep localhost" |
|
# arguments: wait time, sleep time, shell command |
|
# returns 0 if the shell command get output, 1 otherwise. |
|
util::wait_for_success(){ |
|
local wait_time="$1" |
|
local sleep_time="$2" |
|
local cmd="$3" |
|
while [ "$wait_time" -gt 0 ]; do |
|
if eval "$cmd"; then |
|
return 0 |
|
else |
|
sleep "$sleep_time" |
|
wait_time=$((wait_time-sleep_time)) |
|
fi |
|
done |
|
return 1 |
|
} |
|
|
|
util::host_os() { |
|
local host_os |
|
case "$(uname -s)" in |
|
Darwin) |
|
host_os=darwin |
|
;; |
|
Linux) |
|
host_os=linux |
|
;; |
|
*) |
|
echo "Unsupported host OS. Must be Linux or Mac OS X." |
|
exit 1 |
|
;; |
|
esac |
|
echo "${host_os}" |
|
} |
|
|
|
util::host_arch() { |
|
local host_arch |
|
case "$(uname -m)" in |
|
x86_64*) |
|
host_arch=amd64 |
|
;; |
|
i?86_64*) |
|
host_arch=amd64 |
|
;; |
|
amd64*) |
|
host_arch=amd64 |
|
;; |
|
aarch64*) |
|
host_arch=arm64 |
|
;; |
|
arm64*) |
|
host_arch=arm64 |
|
;; |
|
arm*) |
|
host_arch=arm |
|
;; |
|
i?86*) |
|
host_arch=x86 |
|
;; |
|
s390x*) |
|
host_arch=s390x |
|
;; |
|
ppc64le*) |
|
host_arch=ppc64le |
|
;; |
|
*) |
|
echo "Unsupported host arch. Must be x86_64, 386, arm, arm64, s390x or ppc64le." |
|
exit 1 |
|
;; |
|
esac |
|
echo "${host_arch}" |
|
} |
|
|
|
util::md5() { |
|
if which md5 >/dev/null 2>&1; then |
|
md5 -q "$1" |
|
else |
|
md5sum "$1" | awk '{ print $1 }' |
|
fi |
|
}
|
|
|