2021-06-03 16:04:36 +02:00
|
|
|
#! /bin/bash
|
|
|
|
|
|
|
|
set -euo pipefail
|
|
|
|
|
|
|
|
ACTION=${1}
|
|
|
|
CACHE_NAME=${2}
|
|
|
|
PATH_TO_CACHE=${3}
|
|
|
|
|
2024-08-14 09:08:55 +02:00
|
|
|
CACHE_URL="http://${CIRRUS_HTTP_CACHE_HOST}/${CACHE_NAME}"
|
2021-06-03 16:04:36 +02:00
|
|
|
|
2024-08-14 09:08:55 +02:00
|
|
|
TMP_PATH="/tmp/tmp-cache.tgz"
|
2021-06-03 16:04:36 +02:00
|
|
|
|
|
|
|
case "${ACTION}" in
|
|
|
|
|
|
|
|
download)
|
2024-08-14 09:08:55 +02:00
|
|
|
echo "Download cache with key ${CACHE_NAME} from ${CACHE_URL}"
|
|
|
|
curl --silent --show-error --fail --location --output "${TMP_PATH}" "${CACHE_URL}" || {
|
|
|
|
echo "Cache download failed" >&2
|
|
|
|
exit 0
|
2021-06-03 16:04:36 +02:00
|
|
|
}
|
2024-08-14 09:08:55 +02:00
|
|
|
du -hs "${TMP_PATH}"
|
|
|
|
tar -Pxzf "${TMP_PATH}"
|
|
|
|
rm "${TMP_PATH}"
|
2021-06-03 16:04:36 +02:00
|
|
|
;;
|
|
|
|
|
|
|
|
upload)
|
|
|
|
echo "Upload cache to ${CACHE_URL}"
|
2024-08-14 09:08:55 +02:00
|
|
|
tar -Pczf "${TMP_PATH}" "${PATH_TO_CACHE}"
|
|
|
|
du -hs "${TMP_PATH}"
|
|
|
|
curl --silent --show-error -X POST --data-binary "@${TMP_PATH}" "${CACHE_URL}" || {
|
|
|
|
echo "Cache upload failed" >&2
|
|
|
|
exit 0
|
|
|
|
}
|
2021-06-03 16:04:36 +02:00
|
|
|
;;
|
|
|
|
|
|
|
|
*)
|
2024-08-14 09:08:55 +02:00
|
|
|
echo "Unexpected cache ACTION: ${ACTION}" >&2
|
2021-06-03 16:04:36 +02:00
|
|
|
exit 1
|
|
|
|
;;
|
|
|
|
|
|
|
|
esac
|
2024-08-14 09:08:55 +02:00
|
|
|
|
|
|
|
echo "Cache ${ACTION}ed succeeded."
|