forked from wangbo/easyai
36 lines
1.1 KiB
Bash
Executable File
36 lines
1.1 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
set -euo pipefail
|
|
|
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
tmp_dir="$(mktemp -d)"
|
|
trap 'rm -rf "$tmp_dir"' EXIT
|
|
|
|
cat > "$tmp_dir/docker" <<'SH'
|
|
#!/usr/bin/env bash
|
|
case "$1" in
|
|
info) [ "${DOCKER_STUB_STATE:-}" != unavailable ] ;;
|
|
container) [ "${DOCKER_STUB_STATE:-}" != absent ] ;;
|
|
inspect) printf '%s\n' "${DOCKER_STUB_MOUNT:-}" ;;
|
|
*) exit 2 ;;
|
|
esac
|
|
SH
|
|
chmod +x "$tmp_dir/docker"
|
|
export PATH="$tmp_dir:$PATH"
|
|
|
|
DOCKER_STUB_STATE=absent "$script_dir/check-redis-persistence.sh"
|
|
DOCKER_STUB_MOUNT="bind|$(cd "$script_dir/../data" && pwd -P)/redis" "$script_dir/check-redis-persistence.sh"
|
|
|
|
for state in unavailable no_mount wrong_mount; do
|
|
case "$state" in
|
|
unavailable) export DOCKER_STUB_STATE=unavailable DOCKER_STUB_MOUNT='' ;;
|
|
no_mount) export DOCKER_STUB_STATE=present DOCKER_STUB_MOUNT='' ;;
|
|
wrong_mount) export DOCKER_STUB_STATE=present DOCKER_STUB_MOUNT='bind|/other/redis' ;;
|
|
esac
|
|
if "$script_dir/check-redis-persistence.sh" > /dev/null 2>&1; then
|
|
echo "unsafe Redis state accepted: $state" >&2
|
|
exit 1
|
|
fi
|
|
done
|
|
|
|
echo 'Redis persistence guard tests passed'
|