Files
2026-04-27 10:04:36 +08:00

65 lines
2.4 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
BUNDLE_NAME="${BUNDLE_NAME:-store_dwell_alert_bundle}"
BUILD_DATE="${BUILD_DATE:-$(date +%F)}"
DIST_DIR="${PROJECT_DIR}/dist"
STAGE_DIR="${DIST_DIR}/${BUNDLE_NAME}"
ARCHIVE_PATH="${DIST_DIR}/${BUNDLE_NAME}_${BUILD_DATE}.tar.gz"
WHEELHOUSE_SOURCE="${WHEELHOUSE_SOURCE:-${PROJECT_DIR}/wheelhouse}"
WEIGHTS_SOURCE="${WEIGHTS_SOURCE:-${PROJECT_DIR}/weights/yolo11n.pt}"
require_path() {
local target="$1"
if [[ ! -e "${target}" ]]; then
echo "Missing required path: ${target}" >&2
exit 1
fi
}
require_path "${PROJECT_DIR}/app"
require_path "${PROJECT_DIR}/config/config.example.yaml"
require_path "${PROJECT_DIR}/deploy/store-dwell-alert.service.tpl"
require_path "${PROJECT_DIR}/requirements.txt"
require_path "${PROJECT_DIR}/requirements.lock.txt"
require_path "${PROJECT_DIR}/README.md"
require_path "${PROJECT_DIR}/README_zh.md"
require_path "${PROJECT_DIR}/scripts/install.sh"
require_path "${PROJECT_DIR}/scripts/run.sh"
require_path "${PROJECT_DIR}/scripts/install_service.sh"
require_path "${WHEELHOUSE_SOURCE}"
require_path "${WEIGHTS_SOURCE}"
rm -rf "${STAGE_DIR}"
mkdir -p \
"${STAGE_DIR}/config" \
"${STAGE_DIR}/data/runtime" \
"${STAGE_DIR}/data/staff_gallery" \
"${STAGE_DIR}/deploy" \
"${STAGE_DIR}/logs" \
"${STAGE_DIR}/scripts" \
"${STAGE_DIR}/weights"
cp -R "${PROJECT_DIR}/app" "${STAGE_DIR}/app"
cp "${PROJECT_DIR}/README.md" "${STAGE_DIR}/README.md"
cp "${PROJECT_DIR}/README_zh.md" "${STAGE_DIR}/README_zh.md"
cp "${PROJECT_DIR}/requirements.txt" "${STAGE_DIR}/requirements.txt"
cp "${PROJECT_DIR}/requirements.lock.txt" "${STAGE_DIR}/requirements.lock.txt"
cp "${PROJECT_DIR}/config/config.example.yaml" "${STAGE_DIR}/config/config.example.yaml"
cp "${PROJECT_DIR}/deploy/store-dwell-alert.service.tpl" "${STAGE_DIR}/deploy/store-dwell-alert.service.tpl"
cp "${PROJECT_DIR}/scripts/install.sh" "${STAGE_DIR}/scripts/install.sh"
cp "${PROJECT_DIR}/scripts/run.sh" "${STAGE_DIR}/scripts/run.sh"
cp "${PROJECT_DIR}/scripts/install_service.sh" "${STAGE_DIR}/scripts/install_service.sh"
cp "${WEIGHTS_SOURCE}" "${STAGE_DIR}/weights/yolo11n.pt"
cp -R "${WHEELHOUSE_SOURCE}" "${STAGE_DIR}/wheelhouse"
chmod +x \
"${STAGE_DIR}/scripts/install.sh" \
"${STAGE_DIR}/scripts/run.sh" \
"${STAGE_DIR}/scripts/install_service.sh"
rm -f "${ARCHIVE_PATH}"
tar -czf "${ARCHIVE_PATH}" -C "${DIST_DIR}" "${BUNDLE_NAME}"
echo "Bundle created: ${ARCHIVE_PATH}"