#!/usr/bin/env bash

# Configure Chinese mirrors (Aliyun) for apt, pip, and npm
# Can be called independently or during container initialization

set -e

echo "Configuring Chinese mirrors (Aliyun) for apt, pip, and npm..."

# Replace Ubuntu sources with Aliyun mirror
# Ubuntu 24.04+ uses DEB822 format in sources.list.d/ubuntu.sources
if [[ -f /etc/apt/sources.list.d/ubuntu.sources ]]; then
    sudo sed -i 's|http://archive.ubuntu.com/ubuntu/|https://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list.d/ubuntu.sources
    sudo sed -i 's|http://security.ubuntu.com/ubuntu/|https://mirrors.aliyun.com/ubuntu/|g' /etc/apt/sources.list.d/ubuntu.sources
    echo "Updated Ubuntu apt sources (DEB822 format) to use Aliyun mirrors"
# Ubuntu 22.04 and older use the traditional sources.list format
elif [[ -f /etc/apt/sources.list ]]; then
    sudo sed -i 's|http://archive.ubuntu.com/ubuntu|https://mirrors.aliyun.com/ubuntu|g' /etc/apt/sources.list
    sudo sed -i 's|http://security.ubuntu.com/ubuntu|https://mirrors.aliyun.com/ubuntu|g' /etc/apt/sources.list
    echo "Updated Ubuntu apt sources (sources.list format) to use Aliyun mirrors"
fi

# Configure npm registry to use Chinese mirror (npmmirror.com is the recommended mirror)
if command -v npm &> /dev/null; then
    npm config set registry https://registry.npmmirror.com/
    echo "Configured npm registry to use Chinese mirror (registry.npmmirror.com)"
fi
# Also set system-wide npm config for all users
sudo mkdir -p /etc/npm
echo "registry=https://registry.npmmirror.com/" | sudo tee /etc/npm/npmrc > /dev/null
# Set for root user as well (for when npm is installed later)
sudo mkdir -p /root/.npm
echo "registry=https://registry.npmmirror.com/" | sudo tee /root/.npmrc > /dev/null
echo "Configured npm registry to use Chinese mirror (registry.npmmirror.com)"

# Configure pip to use Aliyun mirror
sudo mkdir -p /etc/pip
echo "[global]
index-url = https://mirrors.aliyun.com/pypi/simple/

[install]
trusted-host = mirrors.aliyun.com" | sudo tee /etc/pip/pip.conf > /dev/null
echo "Configured pip to use Aliyun mirror"

# Update apt package cache after changing mirrors
echo "Updating apt package cache from new mirrors..."
if sudo apt update; then
    echo "Apt package cache updated successfully from Aliyun mirrors"
else
    echo "Warning: apt update failed, but mirrors are configured"
fi

echo "Chinese mirrors (Aliyun) configuration completed"
