#!/bin/bash
set -e

# version check: https://redis.io/
REDIS_VERSION=7.0.15
REDIS_HASH="98066f5363504b26c34dd20fbcc3c957990d764cdf42576c836fc021073f4341"

cd /tmp
# Prepare Redis source.
wget -q http://download.redis.io/releases/redis-$REDIS_VERSION.tar.gz
sha256sum redis-$REDIS_VERSION.tar.gz
echo "$REDIS_HASH redis-$REDIS_VERSION.tar.gz" | sha256sum -c

tar zxf redis-$REDIS_VERSION.tar.gz
cd redis-$REDIS_VERSION

# aarch64 compatibility
if uname -m | grep -qi 'aarch64'; then
  export JEMALLOC_CONFIGURE_OPTS="--with-lg-page=16"
fi

# Building and installing binaries.
make -j"$(nproc)" BUILD_TLS=yes && make install PREFIX=/usr

# Add `redis` user and group.
adduser --system --home /var/lib/redis --quiet --group redis || true

# Configure Redis.
mkdir -p /etc/redis
mkdir -p /var/lib/redis
mkdir -p /var/log/redis
cp /tmp/redis-$REDIS_VERSION/redis.conf /etc/redis

chown -R redis:redis /var/lib/redis
chmod 750 /var/lib/redis

chown -R redis:redis /var/log/redis
chmod 750 /var/log/redis

# Clean up.
cd / && rm -rf /tmp/redis*
