summaryrefslogtreecommitdiffstats
path: root/packaging/makeself/functions.sh
diff options
context:
space:
mode:
Diffstat (limited to 'packaging/makeself/functions.sh')
-rwxr-xr-xpackaging/makeself/functions.sh60
1 files changed, 45 insertions, 15 deletions
diff --git a/packaging/makeself/functions.sh b/packaging/makeself/functions.sh
index afc8a9ac9..31c28d85c 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