Files
transkripte/scripts/create_migration_bundle.sh
T
2026-04-15 00:01:38 +02:00

39 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env bash
set -euo pipefail
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
PROJECT_DIR="${PROJECT_DIR:-$(cd "$SCRIPT_DIR/.." && pwd)}"
DIST_DIR="$PROJECT_DIR/dist"
STAGE_ROOT="$(mktemp -d)"
STAGE_DIR="$STAGE_ROOT/whisper-transcript-pipeline"
STAMP="$(date +%Y%m%d-%H%M%S)"
VERSION="$(
python3 - <<'PY'
from pathlib import Path
import re
content = Path("transcript_pipeline.py").read_text(encoding="utf-8")
match = re.search(r'^PIPELINE_VERSION = "([^"]+)"$', content, re.M)
print(match.group(1) if match else "unknown")
PY
)"
ARCHIVE_NAME="whisper-transcript-pipeline-${VERSION}-portable-${STAMP}.tar.gz"
mkdir -p "$DIST_DIR" "$STAGE_DIR"
rsync -a \
--exclude '.env' \
--exclude '__pycache__/' \
--exclude '*.pyc' \
--exclude 'archive/' \
--exclude 'pipeline.log' \
--exclude 'pipeline_state.sqlite3' \
--exclude 'launchd.stdout.log' \
--exclude 'launchd.stderr.log' \
--exclude 'dist/' \
"$PROJECT_DIR/" "$STAGE_DIR/"
tar -czf "$DIST_DIR/$ARCHIVE_NAME" -C "$STAGE_ROOT" "whisper-transcript-pipeline"
rm -rf "$STAGE_ROOT"
echo "$DIST_DIR/$ARCHIVE_NAME"