forked from BasedHardware/omi
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsync-python-deps.sh
More file actions
executable file
·40 lines (33 loc) · 1.15 KB
/
Copy pathsync-python-deps.sh
File metadata and controls
executable file
·40 lines (33 loc) · 1.15 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env bash
# Sync the backend local virtualenv from the checked-in uv pylock.
set -euo pipefail
ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd)"
cd "$ROOT_DIR"
PYTHON_VERSION="$(tr -d '[:space:]' < .python-version)"
VENV_PATH="${VENV_PATH:-.venv}"
LOCK_FILE="pylock.toml"
PYTHON_BIN="$VENV_PATH/bin/python"
case "$(uname -s)-$(uname -m)" in
Darwin-arm64|Darwin-aarch64)
LOCK_FILE="pylock.macos.toml"
;;
Darwin-x86_64|Darwin-amd64)
LOCK_FILE="pylock.macos-x86_64.toml"
;;
MINGW*-x86_64|MSYS*-x86_64|CYGWIN*-x86_64)
LOCK_FILE="pylock.windows.toml"
PYTHON_BIN="$VENV_PATH/Scripts/python.exe"
;;
esac
if [[ ! -f "$LOCK_FILE" ]]; then
echo "Expected dependency lock $LOCK_FILE for platform $(uname -s)-$(uname -m), but it was not found." >&2
exit 1
fi
if ! command -v uv >/dev/null 2>&1; then
echo "uv is required. Install it from https://docs.astral.sh/uv/getting-started/installation/" >&2
exit 1
fi
uv python install "$PYTHON_VERSION"
uv venv --python "$PYTHON_VERSION" "$VENV_PATH"
uv pip sync "$LOCK_FILE" --python "$PYTHON_BIN"
echo "Backend dependencies synced from $LOCK_FILE into $ROOT_DIR/$VENV_PATH"