#!/bin/sh
set -e

# Create user and group if they don't exist
if ! getent group mond >/dev/null; then
    addgroup --system mond
fi

if ! getent passwd mond >/dev/null; then
    adduser --system --ingroup mond --no-create-home \
        --home /var/lib/mond --shell /usr/sbin/nologin \
        --gecos "Mond Cryptocurrency Daemon" mond
fi

# Create log directory
mkdir -p /var/log/mond
chown mond:mond /var/log/mond
chmod 750 /var/log/mond

# Create data directory（非递归设权限，避免升级时遍历庞大的区块链数据目录）
mkdir -p /var/lib/mond/data
chown mond:mond /var/lib/mond /var/lib/mond/data
chmod 750 /var/lib/mond /var/lib/mond/data

# Create config directory
mkdir -p /etc/mond

# 兼容旧版本：配置文件曾位于 /var/lib/mond/params.conf，迁移到 /etc/mond/params.conf
if [ ! -f /etc/mond/params.conf ] && [ -f /var/lib/mond/params.conf ]; then
    echo "Migrating existing config from /var/lib/mond to /etc/mond..."
    cp /var/lib/mond/params.conf /etc/mond/params.conf
fi

# 首次安装：从包内默认配置生成（源：conf/params.example.conf）。升级不覆盖已有配置
if [ ! -f /etc/mond/params.conf ]; then
    cp /opt/mond/params.conf /etc/mond/params.conf
fi

chown mond:mond /etc/mond/params.conf
chmod 640 /etc/mond/params.conf

# Set permissions：/opt 目录与二进制 755，数据文件 644（对齐 xxxig / xxxig-proxy）
chown -R root:root /opt/mond
find /opt/mond -type d -exec chmod 755 {} +
find /opt/mond -type f -exec chmod 644 {} +
chmod 755 /opt/mond/mond

# Reload systemd
if [ -d /run/systemd/system ]; then
    systemctl daemon-reload

    # 升级时重启正在运行的服务以加载新二进制；try-restart 不会启动未运行的服务，
    # 故首次安装仍保持"不自动启动"语义
    systemctl try-restart mond.service 2>/dev/null || true

    # Note: On fresh install, service is NOT auto-enabled or auto-started
    #   systemctl enable mond.service
    #   systemctl start mond.service
fi

echo ""
echo "✅ Mond installed successfully!"
echo ""
echo "📁 Important paths:"
echo "   Config file:      /etc/mond/params.conf"
echo "   Data directory:   /var/lib/mond/data"
echo "   Log directory:    /var/log/mond"
echo "   Binaries:         /opt/mond/mond"
echo "   Systemd services: mond.service"
echo ""
echo "💡 Tip: Your config files will NOT be overwritten during package upgrades."
echo ""

exit 0
