#!/bin/bash

source "$(dirname "$0")/config.env"

# Ustawienia Redis

# Zawsze generuj nowe hasło Redis i nadpisz w config.env
REDIS_PASSWORD=$(openssl rand -base64 24 | tr -d "=+/" | cut -c1-32)
echo -e "\033[01;34m Ustawiono nowe hasło dla Redis \033[00m"
sed -i "s/^REDIS_PASSWORD=.*/REDIS_PASSWORD=\"$REDIS_PASSWORD\"/" "$(dirname "$0")/config.env"

# Ustawienie hasła w redis.conf: podmiana istniejącego wpisu lub dodanie nowego
REDIS_CONF="/etc/redis/redis.conf"
TMP_REDIS_CONF="/tmp/redis.conf.$$"

awk -v pass="$REDIS_PASSWORD" '
BEGIN { requirepass_set = 0 }
{
    if ($0 ~ /^[[:space:]]*#?[[:space:]]*requirepass([[:space:]]|$)/) {
        if (requirepass_set == 0) {
            print "requirepass " pass
            requirepass_set = 1
        }
        next
    }
    print
}
END {
    if (requirepass_set == 0) {
        print "requirepass " pass
    }
}
' "$REDIS_CONF" > "$TMP_REDIS_CONF" && mv "$TMP_REDIS_CONF" "$REDIS_CONF"

# Ustawienia zapisu Redis
sed -i '/# save 3600 1 300 100 60 10000/a save 1200 1 600 10 120 10000' /etc/redis/redis.conf