#!/bin/bash
set -euo pipefail

DB=/var/lib/demacia-api/demacia-api.db
DO_VACUUM=0
if [ "${1:-}" = "--vacuum" ]; then
    DO_VACUUM=1
fi

if [ "$(id -u)" -ne 0 ]; then
    echo "must run as root" >&2
    exit 1
fi

echo "==> stopping demacia-api"
systemctl stop demacia-api

echo "==> WAL checkpoint (TRUNCATE)"
sudo -u demacia-api python3 -c "
import sqlite3
c = sqlite3.connect('$DB')
print('checkpoint:', c.execute('PRAGMA wal_checkpoint(TRUNCATE);').fetchone())
c.close()
"

if [ "$DO_VACUUM" -eq 1 ]; then
    echo "==> VACUUM (may take a while)"
    sudo -u demacia-api python3 -c "
import sqlite3
c = sqlite3.connect('$DB')
c.execute('VACUUM')
c.close()
"
fi

echo "==> starting demacia-api"
systemctl start demacia-api

echo "==> done"
ls -lah /var/lib/demacia-api/
