mirror of
https://github.com/optim-enterprises-bv/vault.git
synced 2025-10-30 02:02:43 +00:00
49 lines
1002 B
Bash
Executable File
49 lines
1002 B
Bash
Executable File
#!/bin/bash
|
|
# Copyright (c) HashiCorp, Inc.
|
|
# SPDX-License-Identifier: MPL-2.0
|
|
|
|
|
|
set -ex -o pipefail
|
|
|
|
if [ "$PACKAGES" == "" ]
|
|
then
|
|
echo "No dependencies to install."
|
|
exit 0
|
|
fi
|
|
|
|
function retry {
|
|
local retries=$1
|
|
shift
|
|
local count=0
|
|
|
|
until "$@"; do
|
|
exit=$?
|
|
wait=$((2 ** count))
|
|
count=$((count + 1))
|
|
if [ "$count" -lt "$retries" ]; then
|
|
sleep "$wait"
|
|
else
|
|
exit "$exit"
|
|
fi
|
|
done
|
|
|
|
return 0
|
|
}
|
|
|
|
echo "Installing Dependencies: $PACKAGES"
|
|
if [ -f /etc/debian_version ]; then
|
|
# Do our best to make sure that we don't race with cloud-init. Wait a reasonable time until we
|
|
# see ec2 in the sources list. Very rarely cloud-init will take longer than we wait. In that case
|
|
# we'll just install our packages.
|
|
retry 7 grep ec2 /etc/apt/sources.list || true
|
|
|
|
cd /tmp
|
|
retry 5 sudo apt update
|
|
# shellcheck disable=2068
|
|
retry 5 sudo apt install -y ${PACKAGES[@]}
|
|
else
|
|
cd /tmp
|
|
# shellcheck disable=2068
|
|
retry 7 sudo yum -y install ${PACKAGES[@]}
|
|
fi
|