#!/bin/bash set -e # 参数检查 if [ $# -ne 3 ]; then echo "Usage: $0 " echo "Example: $0 amd64 3.4.6-xg1 xxxigcc-amd64-ubuntu-3.4.6-xg1.tar.gz" exit 1 fi ARCH=$1 VERSION=$2 TARGZ_FILE=$3 PKG_NAME="xxxigcc" DEB_FILE="${PKG_NAME}_${VERSION}_${ARCH}.deb" # 转换架构名称(Docker 使用的架构名到 Debian 架构名) case "$ARCH" in amd64) DEB_ARCH="amd64" ;; arm64) DEB_ARCH="arm64" ;; *) echo "Unsupported architecture: $ARCH" exit 1 ;; esac echo "📦 Building Debian package: ${DEB_FILE}" echo " Architecture: ${DEB_ARCH}" echo " Version: ${VERSION}" echo " Source: ${TARGZ_FILE}" # 创建临时目录 BUILD_DIR=$(mktemp -d) trap "rm -rf $BUILD_DIR" EXIT # 创建包目录结构 PKG_DIR="${BUILD_DIR}/${PKG_NAME}_${VERSION}_${DEB_ARCH}" mkdir -p "${PKG_DIR}/DEBIAN" mkdir -p "${PKG_DIR}/opt/xxxigcc" mkdir -p "${PKG_DIR}/lib/systemd/system" # 解压二进制文件 echo "📂 Extracting binaries..." tar -xzf "${TARGZ_FILE}" -C "${PKG_DIR}/opt/xxxigcc" # 生成 control 文件 echo "📝 Generating control file..." sed -e "s/{{VERSION}}/${VERSION}/" \ -e "s/{{ARCH}}/${DEB_ARCH}/" \ debian/control.template > "${PKG_DIR}/DEBIAN/control" # 复制维护脚本 echo "📋 Copying maintainer scripts..." cp debian/postinst "${PKG_DIR}/DEBIAN/postinst" cp debian/prerm "${PKG_DIR}/DEBIAN/prerm" cp debian/postrm "${PKG_DIR}/DEBIAN/postrm" chmod 755 "${PKG_DIR}/DEBIAN/postinst" chmod 755 "${PKG_DIR}/DEBIAN/prerm" chmod 755 "${PKG_DIR}/DEBIAN/postrm" # 复制 systemd service 文件 echo "🔧 Installing systemd services..." cp debian/xxxigcc-server.service "${PKG_DIR}/lib/systemd/system/" cp debian/xxxigcc-daemon.service "${PKG_DIR}/lib/systemd/system/" # 设置权限 chmod 755 "${PKG_DIR}/opt/xxxigcc/xxxigServer" chmod 755 "${PKG_DIR}/opt/xxxigcc/xxxigDaemon" chmod 755 "${PKG_DIR}/opt/xxxigcc/xxxigMiner" chmod 644 "${PKG_DIR}/opt/xxxigcc/config.json" chmod 644 "${PKG_DIR}/opt/xxxigcc/config_cc.json" chmod 644 "${PKG_DIR}/opt/xxxigcc/index.html" chmod 644 "${PKG_DIR}/lib/systemd/system/xxxigcc-server.service" chmod 644 "${PKG_DIR}/lib/systemd/system/xxxigcc-daemon.service" # 构建 deb 包 echo "🔨 Building package..." dpkg-deb --build --root-owner-group "${PKG_DIR}" "${DEB_FILE}" # 检查包 echo "✅ Package built successfully!" echo "📦 Package: $(pwd)/${DEB_FILE}" echo "📊 Package info:" dpkg-deb --info "${DEB_FILE}" echo "" echo "🎉 Done!"