# bash fonts colors cyan='\e[96m' yellow='\e[33m' red='\e[31m' none='\e[0m' _cyan() { echo -e "${cyan}$*${none}"; } _yellow() { echo -e "${yellow}$*${none}"; } _red() { echo -e "${red}$*${none}"; } _info() { _cyan "Info: $*"; } _warn() { _yellow "Warn: $*"; } _err() { _red "Error: $*" && exit 1; } CURL_TIMEOUT=1 CURL_COOLDOWN=5 CURL_MAX_TRIES=300 function wait_url_ready() { local serve_name="$1" local url="$2" i=0 while true; do _info "===> Waiting for ${serve_name} to be ready...${i}s" i=$((i + CURL_COOLDOWN)) set +e curl --silent --max-time "$CURL_TIMEOUT" "${url}" >/dev/null result=$? set -e if [ "$result" -eq 0 ]; then break fi if [ "$i" -gt "$CURL_MAX_TRIES" ]; then _info "===> ${CURL_MAX_TRIES}s exceeded waiting for ${serve_name} to be ready" return 1 fi sleep "$CURL_COOLDOWN" done _info "===> ${serve_name} is ready." } function wait_for_exit() { local VLLM_PID="$1" while kill -0 "$VLLM_PID"; do _info "===> Wait for ${VLLM_PID} to exit." sleep 1 done _info "===> Process ${VLLM_PID} has exited." } VENV_PATH=/tmp/vllm_venv function clean_venv() { if [[ -n "$VENV_PATH" && -d "$VENV_PATH" ]]; then _info "Cleaning up default virtual env path: ${VENV_PATH}" deactivate || true rm -rf "$VENV_PATH" fi } function create_vllm_venv() { # make a clean env path clean_venv _info "Creating vllm virtual environment at ${VENV_PATH}" python3 -m venv ${VENV_PATH} source ${VENV_PATH}/bin/activate } function get_version() { local VERSION_NAME="$1" python3 "${SCRIPT_DIR}/../../docs/source/conf.py" | jq .${VERSION_NAME} | tr -d '"' } SCRIPT_DIR=$(cd "$(dirname "$0")" && pwd)