| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667 |
- #!/usr/bin/env bash
- # Set error handling
- set -o errexit
- set -o nounset
- set -o pipefail
- # Get the root directory and third_party directory
- ROOT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")/.." && pwd -P)"
- # Include the common functions
- source "${ROOT_DIR}/hack/lib/init.sh"
- function download_deps() {
- if ! command -v uv &> /dev/null; then
- pip install uv
- fi
- # uv sync --all-extras to install all dependencies
- uv sync --locked
- if [[ "${DEPS_ONLY:-false}" == "false" ]]; then
- uv pip install pre-commit==3.7.1
- uv run pre-commit install
- fi
- }
- # Update community backends
- function make_community_backends() {
- local tmp_dir
- tmp_dir=$(mktemp -d -t gpustack-community-backends.XXXXXX)
- # shellcheck disable=SC2064
- trap "rm -rf \"${tmp_dir}\"" EXIT
- local target_dir="${ROOT_DIR}/gpustack/assets/"
- gpustack::log::info "pulling community backends"
- # Clone the repository
- git clone https://github.com/gpustack/community-inference-backends "${tmp_dir}"
- # Build the community backends
- (
- cd "${tmp_dir}"
- if [[ "${UV_SYSTEM_PYTHON:-}" == "1" ]]; then
- # In Docker build, use system Python directly
- uv pip install PyYAML && uv run make
- else
- # For local development, use virtual environment
- uv venv && source .venv/bin/activate && uv pip install PyYAML && uv run make
- fi
- )
- # Create target directory and copy the yaml file
- mkdir -p "${target_dir}"
- cp "${tmp_dir}/dist/community-inference-backends.yaml" "${target_dir}/community-inference-backends.yaml"
- gpustack::log::info "community backends updated successfully"
- }
- #
- # main
- #
- gpustack::log::info "+++ DEPENDENCIES +++"
- download_deps
- make_community_backends
- gpustack::log::info "--- DEPENDENCIES ---"
|