| #!/usr/bin/env bash |
| # |
| # Licensed to the Apache Software Foundation (ASF) under one |
| # or more contributor license agreements. See the NOTICE file |
| # distributed with this work for additional information |
| # regarding copyright ownership. The ASF licenses this file |
| # to you under the Apache License, Version 2.0 (the |
| # "License"); you may not use this file except in compliance |
| # with the License. You may obtain a copy of the License at |
| # |
| # http://www.apache.org/licenses/LICENSE-2.0 |
| # |
| # Unless required by applicable law or agreed to in writing, |
| # software distributed under the License is distributed on an |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| # KIND, either express or implied. See the License for the |
| # specific language governing permissions and limitations |
| # under the License. |
| # |
| |
| set -e |
| |
| cat >&2 <<'DEPRECATION_EOF' |
| ┌─[DEPRECATED]────────────────────────────────┐ |
| │ This script is deprecated. Use pip instead: │ |
| │ │ |
| │ pip install apache-polaris │ |
| └─────────────────────────────────────────────┘ |
| DEPRECATION_EOF |
| |
| dir=${0%/*} |
| repair=false |
| for arg in "$@"; do |
| if [ "$arg" == "--repair" ]; then |
| repair=true |
| shift |
| break |
| fi |
| done |
| |
| if [ ! -d "${dir}"/polaris-venv ] || [ "$repair" == true ]; then |
| rm -f "${dir}"/uv.lock |
| rm -f "${dir}/client/python/uv.lock" |
| |
| is_first_time=false |
| if [ ! -d "${dir}/polaris-venv" ]; then |
| is_first_time=true |
| echo "Performing first-time setup for the Python client..." |
| python3 -m venv "${dir}"/polaris-venv |
| else |
| echo "Repair dependencies for the Python client..." |
| fi |
| |
| . "${dir}"/polaris-venv/bin/activate |
| pip install --upgrade pip |
| pip install --upgrade -r regtests/requirements.txt |
| |
| (cd "${dir}/client/python" && uv sync --active --all-extras) |
| |
| deactivate |
| |
| if [ "$is_first_time" == true ]; then |
| echo "First time setup complete." |
| else |
| echo "Dependencies repaired." |
| fi |
| |
| if [ "$repair" == true ]; then |
| exit 0 |
| fi |
| fi |
| |
| # Check if the correct virtual environment is already active, if not, activate it. |
| if [ -z "$VIRTUAL_ENV" ] || [ "$(realpath "$VIRTUAL_ENV")" != "$(realpath "${dir}/polaris-venv")" ]; then |
| source "${dir}/polaris-venv/bin/activate" |
| fi |
| |
| # If polaris is not found after activating the venv, it's likely the venv is old and needs a repair |
| if ! command -v polaris &> /dev/null; then |
| echo "Polaris executable not found. Forcing a repair..." >&2 |
| "${dir}/polaris" --repair |
| source "${dir}/polaris-venv/bin/activate" |
| fi |
| |
| exec polaris "$@" |