| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 |
- #!/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
|