39 lines
1.1 KiB
Bash
Executable File
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"
|