#!/bin/bash
set -e

# ======= 运维自定义参数区 =======
REPO_DIR="/data/aptrepo"
DIST_DIR="${REPO_DIR}/dists/kylin"
BINARY_DIR="${DIST_DIR}/main/binary-arm64"
KEY_ID="5317EF6FCDEBE3935C03B51A68E587B50B062047"
# ===============================

echo "Step 1: 扫描物理包并生成 Packages 列表..."
cd ${REPO_DIR}
dpkg-scanpackages pool/main /dev/null > ${BINARY_DIR}/Packages

echo "Step 2: 创建 Packages.gz 压缩索引..."
gzip -9fk ${BINARY_DIR}/Packages

echo "Step 3: 提取元数据生成 Release 描述文件..."
apt-ftparchive release ${DIST_DIR}/ > ${DIST_DIR}/Release

echo "Step 4: 清理旧签名并执行 GPG 重新签名..."
rm -f ${DIST_DIR}/Release.gpg ${DIST_DIR}/InRelease
gpg --batch --yes --digest-algo SHA256 --local-user "${KEY_ID}" --detach-sign --output ${DIST_DIR}/Release.gpg ${DIST_DIR}/Release
gpg --batch --yes --digest-algo SHA256 --local-user "${KEY_ID}" --clearsign --output ${DIST_DIR}/InRelease ${DIST_DIR}/Release

echo "Step 5: 导出最新的公共安全密钥供客户端下载..."
gpg --export --armor "${KEY_ID}" > ${REPO_DIR}/myrepo.key

chown -R www-data:www-data ${REPO_DIR}

echo "🔥 [SUCCESS] APT 仓储服务全流程刷新成功！"

