65 lines
2.4 KiB
Bash
Executable File
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}"
|