server.postinst 2.9 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. #!/bin/bash
  2. # postinst for smartbotic-database (server)
  3. set -e
  4. CONFIG_FILE="/etc/smartbotic-database/config.json"
  5. DATA_DIR="/var/lib/smartbotic-database"
  6. case "$1" in
  7. configure)
  8. if ! getent group smartbotic-db >/dev/null 2>&1; then
  9. addgroup --system smartbotic-db
  10. fi
  11. if ! getent passwd smartbotic-db >/dev/null 2>&1; then
  12. adduser --system --ingroup smartbotic-db --home "$DATA_DIR" \
  13. --shell /usr/sbin/nologin --gecos "Smartbotic Database Service" smartbotic-db
  14. fi
  15. install -d -o smartbotic-db -g smartbotic-db -m 0750 "$DATA_DIR"
  16. install -d -o root -g smartbotic-db -m 0750 /etc/smartbotic-database
  17. # ── Migration from shadowman-database ──
  18. OLD_SM_DATA="/var/lib/shadowman/data/database"
  19. OLD_SM_CONFIG="/etc/shadowman/database.json"
  20. if [ -d "$OLD_SM_DATA" ] && [ "$(ls -A "$OLD_SM_DATA" 2>/dev/null)" ] && \
  21. [ ! "$(ls -A "$DATA_DIR" 2>/dev/null)" ]; then
  22. echo "smartbotic-database: migrating data from shadowman-database..."
  23. cp -a "$OLD_SM_DATA"/. "$DATA_DIR"/
  24. chown -R smartbotic-db:smartbotic-db "$DATA_DIR"
  25. fi
  26. if [ -f "$OLD_SM_CONFIG" ] && [ ! -f "$CONFIG_FILE" ]; then
  27. cp "$OLD_SM_CONFIG" "$CONFIG_FILE"
  28. sed -i 's|/var/lib/shadowman/data/database|/var/lib/smartbotic-database|g' "$CONFIG_FILE"
  29. sed -i 's|/var/lib/shadowman/data/storage\.key|/var/lib/smartbotic-database/storage.key|g' "$CONFIG_FILE"
  30. fi
  31. # ── Migration from callerai-storage ──
  32. OLD_CA_DATA="/var/lib/callerai/storage"
  33. OLD_CA_CONFIG="/etc/callerai/storage.json"
  34. if [ -d "$OLD_CA_DATA" ] && [ "$(ls -A "$OLD_CA_DATA" 2>/dev/null)" ] && \
  35. [ ! "$(ls -A "$DATA_DIR" 2>/dev/null)" ]; then
  36. echo "smartbotic-database: migrating data from callerai-storage..."
  37. cp -a "$OLD_CA_DATA"/. "$DATA_DIR"/
  38. chown -R smartbotic-db:smartbotic-db "$DATA_DIR"
  39. fi
  40. if [ -f "$OLD_CA_CONFIG" ] && [ ! -f "$CONFIG_FILE" ]; then
  41. cp "$OLD_CA_CONFIG" "$CONFIG_FILE"
  42. sed -i 's|/var/lib/callerai/storage|/var/lib/smartbotic-database|g' "$CONFIG_FILE"
  43. fi
  44. if [ -f "$CONFIG_FILE" ]; then
  45. chown root:smartbotic-db "$CONFIG_FILE"
  46. chmod 640 "$CONFIG_FILE"
  47. fi
  48. systemctl daemon-reload || true
  49. if [ -z "$2" ]; then
  50. systemctl enable smartbotic-database.service || true
  51. systemctl start smartbotic-database.service || true
  52. else
  53. systemctl reset-failed smartbotic-database.service 2>/dev/null || true
  54. systemctl restart smartbotic-database.service || true
  55. fi
  56. ;;
  57. abort-upgrade|abort-remove|abort-deconfigure) ;;
  58. *) echo "postinst called with unknown argument '$1'" >&2; exit 1 ;;
  59. esac
  60. exit 0