feat: professionalize control plane and standalone delivery

This commit is contained in:
theshy
2026-04-07 10:46:30 +08:00
parent d0cf1fd0df
commit 862db502b0
100 changed files with 8313 additions and 1483 deletions

View File

@ -3,8 +3,6 @@ set -euo pipefail
PROJECT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOCAL_VENV="$PROJECT_DIR/.venv"
LEGACY_VENV="$PROJECT_DIR/../.venv"
echo "==> biliup-next setup"
echo "project: $PROJECT_DIR"
@ -29,21 +27,57 @@ echo "==> install package"
if [[ -f "$PROJECT_DIR/config/settings.json" ]]; then
echo "==> settings file exists"
elif [[ -f "$PROJECT_DIR/config/settings.standalone.example.json" ]]; then
echo "==> seed standalone settings.json from template"
cp "$PROJECT_DIR/config/settings.standalone.example.json" "$PROJECT_DIR/config/settings.json"
fi
if [[ ! -f "$PROJECT_DIR/config/settings.staged.json" && -f "$PROJECT_DIR/config/settings.json" ]]; then
echo "==> seed settings.staged.json"
cp "$PROJECT_DIR/config/settings.json" "$PROJECT_DIR/config/settings.staged.json"
fi
echo "==> init workspace"
PYTHONPATH="$PROJECT_DIR/src" "$VENV_PYTHON" -m biliup_next.app.cli init-workspace
mkdir -p "$PROJECT_DIR/runtime/logs"
if [[ ! -f "$PROJECT_DIR/runtime/cookies.json" && -f "$PROJECT_DIR/runtime/cookies.example.json" ]]; then
echo "==> seed runtime/cookies.json from template"
cp "$PROJECT_DIR/runtime/cookies.example.json" "$PROJECT_DIR/runtime/cookies.json"
fi
if [[ ! -f "$PROJECT_DIR/runtime/upload_config.json" && -f "$PROJECT_DIR/runtime/upload_config.example.json" ]]; then
echo "==> seed runtime/upload_config.json from template"
cp "$PROJECT_DIR/runtime/upload_config.example.json" "$PROJECT_DIR/runtime/upload_config.json"
fi
echo "==> sync local runtime assets when available"
PYTHONPATH="$PROJECT_DIR/src" "$VENV_PYTHON" -m biliup_next.app.cli sync-legacy-assets || true
echo "==> verify bundled runtime assets"
for REQUIRED_ASSET in \
"$PROJECT_DIR/runtime/cookies.json" \
"$PROJECT_DIR/runtime/upload_config.json"
do
if [[ ! -e "$REQUIRED_ASSET" ]]; then
echo "missing required runtime asset: $REQUIRED_ASSET" >&2
echo "populate biliup-next/runtime first, or run sync-legacy-assets as a one-time import." >&2
exit 1
fi
done
if [[ ! -e "$PROJECT_DIR/runtime/biliup" ]]; then
echo "warning: runtime/biliup not found; publish provider will remain unavailable until you copy or install it." >&2
fi
echo "==> runtime doctor"
PYTHONPATH="$PROJECT_DIR/src" "$VENV_PYTHON" -m biliup_next.app.cli doctor
echo
echo "Optional external dependencies expected by current legacy-backed providers:"
echo "Optional external dependencies expected by current providers:"
echo " ffmpeg / ffprobe / codex / biliup"
echo " cookies.json / upload_config.json / .env from parent project may still be reused"
echo " runtime assets must live under biliup-next/runtime"
echo
read -r -p "Install systemd services now? [y/N] " INSTALL_SYSTEMD