#!/bin/bash

# 定义下载 URL 和目标目录
EPKG_TAR_GZ_URL="https://repo.oepkgs.net/openEuler/compass-ci/initrd/deps/rpm/epkg-environment.tar.gz"
EPKG_LINKTAR_GZ_URL="https://repo.oepkgs.net/openEuler/compass-ci/initrd/deps/rpm/epkg-envlink.tar.gz"
EPKG_LD_URL="https://repo.oepkgs.net/openEuler/compass-ci/initrd/deps/rpm/ld-linux-aarch64.so.1"
EPKG_TAR_GZ_FILENAME="epkg-environment.tar.gz"
EPKG_LD_FILENAME="ld-linux-aarch64.so.1"
EPKG_LINKTAR_GZ_FILENAME="epkg-envlink.tar.gz"
EPKG_INSTALL_DIR="/mnt/"
EPKG_LINKINSTALL_DIR="/opt/epkg/proj-env/epkg"
EPKG_LDINSTALL_DIR="/opt/epkg/"

# 下载 epkg.tar.gz 到当前用户目录
echo "正在下载 $EPKG_TAR_GZ_URL ..."
curl -L $EPKG_TAR_GZ_URL -o $EPKG_TAR_GZ_FILENAME
curl -L $EPKG_LINKTAR_GZ_URL -o $EPKG_LINKTAR_GZ_FILENAME

curl -L $EPKG_LD_URL -o $EPKG_LD_FILENAME
# 检查下载是否成功
if [ ! -f "$EPKG_TAR_GZ_FILENAME" ]; then
    echo "下载失败: 无法找到 $EPKG_TAR_GZ_FILENAME"
    exit 1
fi

if [ ! -f "$EPKG_LINKTAR_GZ_FILENAME" ]; then
    echo "下载失败: 无法找到 $EPKG_LINKTAR_GZ_FILENAME"
    exit 1
fi

if [ ! -f "$EPKG_LINKTAR_GZ_FILENAME" ]; then
    echo "下载失败: 无法找到 $EPKG_LINKTAR_GZ_FILENAME"
    exit 1
fi
echo "下载成功。"

# 创建安装目录（如果不存在）
mkdir -p $EPKG_INSTALL_DIR
mkdir -p $EPKG_LINKINSTALL_DIR

# 解压到指定目录
echo "正在解压到 $EPKG_INSTALL_DIR ..."
tar -xzvf $EPKG_TAR_GZ_FILENAME -C $EPKG_INSTALL_DIR
echo "正在解压到 $EPKG_LINKINSTALL_DIR ..."
tar -xzvf $EPKG_LINKTAR_GZ_FILENAME -C $EPKG_LINKINSTALL_DIR
mv $EPKG_LD_FILENAME $EPKG_LDINSTALL_DIR
rm -f $EPKG_LINKINSTALL_DIR/bin
ln -s $EPKG_LINKINSTALL_DIR/usr/bin $EPKG_LINKINSTALL_DIR/bin
rm -f $EPKG_LINKINSTALL_DIR/lib
ln -s $EPKG_LINKINSTALL_DIR/usr/lib $EPKG_LINKINSTALL_DIR/lib
ln -s $EPKG_LINKINSTALL_DIR $(dirname $EPKG_LINKINSTALL_DIR)/epkg-link


# 设置环境变量
export EPKG_HOME=$HOME/.epkg-profile
ln -s $(dirname $EPKG_LINKINSTALL_DIR)/epkg-link $EPKG_HOME
export PATH="$EPKG_HOME/bin:$PATH"

patchelf  --set-interpreter /opt/epkg/ld-linux-aarch64.so.1 /root/.epkg-profile/usr/lib64/libc.so.6

export PATH=$EPKG_HOME/usr/local/bin:$PATH

while read requirement; do
    pip install "$requirement" -i https://pypi.tuna.tsinghua.edu.cn/simple || echo "无法安装 $requirement"
done < $EPKG_HOME/usr/local/epkg/requirements.txt

# 将环境变量写入 bashrc 或 profile，以便在新的 shell 会话中生效
echo "" >> ~/.bashrc
echo "# epkg 环境变量" >> ~/.bashrc
echo "export EPKG_HOME=$EPKG_HOME" >> ~/.bashrc
echo "export PATH=\"$EPKG_HOME/bin:\$PATH\"" >> ~/.bashrc
echo "export PATH=\"$EPKG_HOME/usr/local/bin:\$PATH\"" >> ~/.bashrc

echo "安装完成。"

