#!/bin/bash

port=$1
if [ -z "$port" ]; then
  echo "Usage: $0 <redis_port>"
  exit 0
fi

ondisk_conf=$(mktemp --suffix "redis.ondisk.$port")
running_conf=$(mktemp --suffix "redis.running.$port")

redis-cli -c -p $port CONFIG GET \* | perl -lne 's/^\d+\) "(.*)"$/$1/; if (! $opt_name) { $opt_name = $_ } else { print "$opt_name $_"; undef $opt_name }' | sort -k1,1 > $running_conf
perl -lne 'next if /^#|^$/; s/^\s+|\s+$//g; s/"//g; ($k, $v) = split(/\s+/, $_, 2); $conf{$k} .= $conf{$k} ? " $v" : $v; END { map { print "$_ $conf{$_}" } keys %conf }' /etc/redis/*.${port}.conf | sort -k1,1 > $ondisk_conf

diff $ondisk_conf $running_conf
rm $ondisk_conf $running_conf
