#!/bin/sh

BASE_DIR="/srv/geo-repository"
DB_DIR="/var/lib/GeoIP"
ARCHIVES_DIR="${BASE_DIR}/archives"

PREFIX="geoip-db_"
SUFFIX=".tar.xz"
LATEST="${PREFIX}latest${SUFFIX}"
NEXT="${PREFIX}1.0.$(date '+%Y%m%d')"

tar -C "${DB_DIR}" --exclude=".*\.lock" -cJf "${ARCHIVES_DIR}/${LATEST}" ./

previous=$(find "${ARCHIVES_DIR}" -type f -name "${PREFIX}20*${SUFFIX}" | sort -r | head -n 1)

if [ -n "${previous}" ]; then
    prev_hash=$(sha256sum "${previous}" | cut -d ' ' -f 1)
    latest_hash=$(sha256sum "${ARCHIVES_DIR}/${LATEST}" | cut -d ' ' -f 1)

    if [ "${latest_hash}" != "${prev_hash}" ]; then
        mv "${ARCHIVES_DIR}/${LATEST}" "${ARCHIVES_DIR}/${NEXT}${SUFFIX}"
    fi
else
    mv "${ARCHIVES_DIR}/${LATEST}" "${ARCHIVES_DIR}/${NEXT}${SUFFIX}"
fi

rm -f "${ARCHIVES_DIR}/${LATEST}"

exit 0
