#!/bin/bash # postinst for smartbotic-database (server) set -e CONFIG_FILE="/etc/smartbotic-database/config.json" DATA_DIR="/var/lib/smartbotic-database" case "$1" in configure) if ! getent group smartbotic-db >/dev/null 2>&1; then addgroup --system smartbotic-db fi if ! getent passwd smartbotic-db >/dev/null 2>&1; then adduser --system --ingroup smartbotic-db --home "$DATA_DIR" \ --shell /usr/sbin/nologin --gecos "Smartbotic Database Service" smartbotic-db fi install -d -o smartbotic-db -g smartbotic-db -m 0750 "$DATA_DIR" install -d -o root -g smartbotic-db -m 0750 /etc/smartbotic-database # v1.7.0: drop-in config directory. *.json files here are merged # lexicographically into /etc/smartbotic-database/config.json at # service start (RFC 7396 merge_patch semantics). install -d -o root -g smartbotic-db -m 0755 /etc/smartbotic-database/conf.d # ── Migration from shadowman-database ── OLD_SM_DATA="/var/lib/shadowman/data/database" OLD_SM_CONFIG="/etc/shadowman/database.json" if [ -d "$OLD_SM_DATA" ] && [ "$(ls -A "$OLD_SM_DATA" 2>/dev/null)" ] && \ [ ! "$(ls -A "$DATA_DIR" 2>/dev/null)" ]; then echo "smartbotic-database: migrating data from shadowman-database..." cp -a "$OLD_SM_DATA"/. "$DATA_DIR"/ chown -R smartbotic-db:smartbotic-db "$DATA_DIR" fi if [ -f "$OLD_SM_CONFIG" ] && [ ! -f "$CONFIG_FILE" ]; then cp "$OLD_SM_CONFIG" "$CONFIG_FILE" sed -i 's|/var/lib/shadowman/data/database|/var/lib/smartbotic-database|g' "$CONFIG_FILE" sed -i 's|/var/lib/shadowman/data/storage\.key|/var/lib/smartbotic-database/storage.key|g' "$CONFIG_FILE" fi # ── Migration from callerai-storage ── OLD_CA_DATA="/var/lib/callerai/storage" OLD_CA_CONFIG="/etc/callerai/storage.json" if [ -d "$OLD_CA_DATA" ] && [ "$(ls -A "$OLD_CA_DATA" 2>/dev/null)" ] && \ [ ! "$(ls -A "$DATA_DIR" 2>/dev/null)" ]; then echo "smartbotic-database: migrating data from callerai-storage..." cp -a "$OLD_CA_DATA"/. "$DATA_DIR"/ chown -R smartbotic-db:smartbotic-db "$DATA_DIR" fi if [ -f "$OLD_CA_CONFIG" ] && [ ! -f "$CONFIG_FILE" ]; then cp "$OLD_CA_CONFIG" "$CONFIG_FILE" sed -i 's|/var/lib/callerai/storage|/var/lib/smartbotic-database|g' "$CONFIG_FILE" fi if [ -f "$CONFIG_FILE" ]; then chown root:smartbotic-db "$CONFIG_FILE" chmod 640 "$CONFIG_FILE" fi systemctl daemon-reload || true if [ -z "$2" ]; then systemctl enable smartbotic-database.service || true systemctl start smartbotic-database.service || true else systemctl reset-failed smartbotic-database.service 2>/dev/null || true systemctl restart smartbotic-database.service || true fi ;; abort-upgrade|abort-remove|abort-deconfigure) ;; *) echo "postinst called with unknown argument '$1'" >&2; exit 1 ;; esac exit 0