#!/bin/bash
set -e  

# default backend
DEV="cuda"

# parse --dev argument
while [ "$#" -gt 0 ]; do
    case $1 in
        --dev) DEV="$2"; shift ;;
        *) echo "Unknown parameter passed: $1"; exit 1 ;;
    esac
    shift
done
export DEV_BACKEND="$DEV"
echo "Selected backend: $DEV_BACKEND"

# clear build dirs
rm -rf build
rm -rf *.egg-info
rm -rf csrc/build
rm -rf csrc/ktransformers_ext/build
rm -rf csrc/ktransformers_ext/cuda/build
rm -rf csrc/ktransformers_ext/cuda/dist
rm -rf csrc/ktransformers_ext/cuda/*.egg-info
rm -rf csrc/balance_serve/build
rm -rf csrc/balance_serve/sched/build
rm -rf csrc/balance_serve/kvc2/build
rm -rf third_party/custom_flashinfer/3rdparty/cutlass/media/docs/build
rm -rf third_party/custom_flashinfer/build
rm -rf third_party/prometheus-cpp/3rdparty/civetweb/build
rm -rf ~/.ktransformers
rm -rf ~/.cache/flashinfer
rm -rf /tmp/kvc
echo "Installing python dependencies from requirements.txt"
pip install -r requirements-local_chat.txt
pip install -r ktransformers/server/requirements.txt

echo "Installing ktransformers"
pip uninstall ktransformers -y
pip uninstall transformers -y
KTRANSFORMERS_FORCE_BUILD=TRUE pip install -v . --no-build-isolation

if [ "$DEV_BACKEND" == "cuda" ]; then
    echo "Installing custom_flashinfer for CUDA backend"
    pip install third_party/custom_flashinfer/
fi
# SITE_PACKAGES=$(python -c "import site; print(site.getsitepackages()[0])")
# echo "Copying thirdparty libs to $SITE_PACKAGES"
# cp -a csrc/balance_serve/build/third_party/prometheus-cpp/lib/libprometheus-cpp-*.so* $SITE_PACKAGES/
# patchelf --set-rpath '$ORIGIN' $SITE_PACKAGES/sched_ext.cpython*

echo "Installation completed successfully"
