Files
nixpkgs/pkgs/by-name/re/redisTestHook/redis-test-hook.sh
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

46 lines
1.0 KiB
Bash

preCheckHooks+=('redisStart')
postCheckHooks+=('redisStop')
redisStart() {
if [[ "${redisTestPort:-}" == "" ]]; then
redisTestPort=6379
fi
mkdir -p "$NIX_BUILD_TOP/run"
if [[ "${REDIS_SOCKET:-}" == "" ]]; then
REDIS_SOCKET="$NIX_BUILD_TOP/run/redis.sock"
fi
export REDIS_SOCKET
REDIS_CONF="$NIX_BUILD_TOP/run/redis.conf"
export REDIS_CONF
cat <<EOF > "$REDIS_CONF"
unixsocket ${REDIS_SOCKET}
port ${redisTestPort}
protected-mode no
enable-debug-command yes
enable-module-command yes
EOF
echo 'starting redis'
# Note about Darwin: unless the output is redirected, the parent process becomes launchd instead of bash.
# This would leave the Redis process running in case of a test failure (the postCheckHook would not be executed),
# hanging the Nix build forever.
@server@ "$REDIS_CONF" > /dev/null 2>&1 &
REDIS_PID=$!
echo 'waiting for redis to be ready'
while ! @cli@ --scan -s "$REDIS_SOCKET" ; do
sleep 1
done
}
redisStop() {
echo 'stopping redis'
kill "$REDIS_PID"
}