diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-06-09 04:52:47 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2022-06-09 04:52:57 +0000 |
commit | 00151562145df50cc65e9902d52d5fa77f89fe50 (patch) | |
tree | 2737716802f6725a5074d606ec8fe5422c58a83c /packaging/makeself/functions.sh | |
parent | Releasing debian version 1.34.1-1. (diff) | |
download | netdata-00151562145df50cc65e9902d52d5fa77f89fe50.tar.xz netdata-00151562145df50cc65e9902d52d5fa77f89fe50.zip |
Merging upstream version 1.35.0.
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'packaging/makeself/functions.sh')
-rwxr-xr-x | packaging/makeself/functions.sh | 60 |
1 files changed, 45 insertions, 15 deletions
diff --git a/packaging/makeself/functions.sh b/packaging/makeself/functions.sh index afc8a9ac..31c28d85 100755 --- a/packaging/makeself/functions.sh +++ b/packaging/makeself/functions.sh @@ -29,34 +29,64 @@ set -euo pipefail # ----------------------------------------------------------------------------- fetch() { - local dir="${1}" url="${2}" sha256="${3}" + local dir="${1}" url="${2}" sha256="${3}" key="${4}" local tar="${dir}.tar.gz" + local cache="${NETDATA_SOURCE_PATH}/artifacts/cache/${BUILDARCH}/${key}" - if [ ! -f "${NETDATA_MAKESELF_PATH}/tmp/${tar}" ]; then - run wget -O "${NETDATA_MAKESELF_PATH}/tmp/${tar}" "${url}" + if [ -d "${NETDATA_MAKESELF_PATH}/tmp/${dir}" ]; then + rm -rf "${NETDATA_MAKESELF_PATH}/tmp/${dir}" fi - # Check SHA256 of gzip'd tar file (apparently alpine's sha256sum requires - # two empty spaces between the checksum and the file's path) - set +e - echo "${sha256} ${NETDATA_MAKESELF_PATH}/tmp/${tar}" | sha256sum -c -s - local rc=$? - if [ ${rc} -ne 0 ]; then - echo >&2 "SHA256 verification of tar file ${tar} failed (rc=${rc})" - echo >&2 "expected: ${sha256}, got $(sha256sum "${NETDATA_MAKESELF_PATH}/tmp/${tar}")" - exit 1 - fi - set -e + if [ -d "${cache}/${dir}" ]; then + echo "Found cached copy of build directory for ${key}, using it." + cp -a "${cache}/${dir}" "${NETDATA_MAKESELF_PATH}/tmp/" + CACHE_HIT=1 + else + echo "No cached copy of build directory for ${key} found, fetching sources instead." + + if [ ! -f "${NETDATA_MAKESELF_PATH}/tmp/${tar}" ]; then + run wget -O "${NETDATA_MAKESELF_PATH}/tmp/${tar}" "${url}" + fi + + # Check SHA256 of gzip'd tar file (apparently alpine's sha256sum requires + # two empty spaces between the checksum and the file's path) + set +e + echo "${sha256} ${NETDATA_MAKESELF_PATH}/tmp/${tar}" | sha256sum -c -s + local rc=$? + if [ ${rc} -ne 0 ]; then + echo >&2 "SHA256 verification of tar file ${tar} failed (rc=${rc})" + echo >&2 "expected: ${sha256}, got $(sha256sum "${NETDATA_MAKESELF_PATH}/tmp/${tar}")" + exit 1 + fi + set -e - if [ ! -d "${NETDATA_MAKESELF_PATH}/tmp/${dir}" ]; then cd "${NETDATA_MAKESELF_PATH}/tmp" run tar -zxpf "${tar}" cd - + + CACHE_HIT=0 fi run cd "${NETDATA_MAKESELF_PATH}/tmp/${dir}" } +store_cache() { + key="${1}" + src="${2}" + + cache="${NETDATA_SOURCE_PATH}/artifacts/cache/${BUILDARCH}/${key}" + + if [ "${CACHE_HIT:-0}" -eq 0 ]; then + if [ -d "${cache}" ]; then + rm -rf "${cache}" + fi + + mkdir -p "${cache}" + + cp -a "${src}" "${cache}" + fi +} + # ----------------------------------------------------------------------------- # load the functions of the netdata-installer.sh |