#!/usr/bin/env bash set -euo pipefail ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)" PACKAGING="${ROOT}/packaging" MANIFEST="${PACKAGING}/manifest.json" DIST="${ROOT}/dist" STAGING="${DIST}/staging" VERSION="$(python3 -c "import json; print(json.load(open('${MANIFEST}'))['version'])")" PACKAGE_NAME="hexagamecloud-whmcs-${VERSION}" ZIP_PATH="${DIST}/${PACKAGE_NAME}.zip" CHECKSUMS_PATH="${DIST}/checksums.txt" rm -rf "${STAGING}" "${ZIP_PATH}" mkdir -p "${STAGING}/modules/servers" "${STAGING}/modules/addons" "${STAGING}/hooks" "${STAGING}/lib" "${DIST}" copy_tree() { local source="$1" local target="$2" if command -v rsync >/dev/null 2>&1; then rsync -a --exclude '.gitkeep' "${source}/" "${target}/" else cp -a "${source}/." "${target}/" fi } copy_tree "${ROOT}/modules/servers/hexagamecloud" "${STAGING}/modules/servers/hexagamecloud" copy_tree "${ROOT}/modules/addons/hexagamecloud" "${STAGING}/modules/addons/hexagamecloud" copy_tree "${ROOT}/hooks" "${STAGING}/hooks" copy_tree "${ROOT}/lib" "${STAGING}/lib" cp "${MANIFEST}" "${STAGING}/manifest.json" ( cd "${STAGING}" zip -r "${ZIP_PATH}" . ) SHA256="$(sha256sum "${ZIP_PATH}" | awk '{print $1}')" SHA512="$(sha512sum "${ZIP_PATH}" | awk '{print $1}')" FILE_SIZE="$(stat -c '%s' "${ZIP_PATH}")" BUILT_AT="$(date -u +"%Y-%m-%dT%H:%M:%SZ")" cat > "${CHECKSUMS_PATH}" <