#!/bin/bash
set -e
echo "=========================================="
echo "Configuring apt repository..."
echo "=========================================="
if [ -f /etc/os-release ]; then
source /etc/os-release
else
echo "ERROR: Cannot find /etc/os-release"
exit 1
fi
if [ "$ID" != "ubuntu" ]; then
echo "ERROR: This script is for Ubuntu only"
exit 1
fi
UBUNTU_CODENAME=$(lsb_release -cs 2>/dev/null || echo "$VERSION_CODENAME")
if [ -z "$UBUNTU_CODENAME" ]; then
echo "ERROR: Cannot determine Ubuntu version codename"
exit 1
fi
ARCH=$(uname -m)
if [[ "$ARCH" == "aarch64" || "$ARCH" == "arm64" ]]; then
HUAWEICLOUD_PATH="/ubuntu-ports/"
else
HUAWEICLOUD_PATH="/ubuntu/"
fi
mkdir -p /etc/apt/sources.list.d/backup
cp /etc/apt/sources.list /etc/apt/sources.list.d/backup/ 2>/dev/null || true
cat > /etc/apt/sources.list <<EOF
deb http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME main restricted universe multiverse
deb-src http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME main restricted universe multiverse
deb http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME-security main restricted universe multiverse
deb-src http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME-security main restricted universe multiverse
deb http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME-updates main restricted universe multiverse
deb-src http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME-updates main restricted universe multiverse
deb http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME-backports main restricted universe multiverse
deb-src http://repo.huaweicloud.com${HUAWEICLOUD_PATH} $UBUNTU_CODENAME-backports main restricted universe multiverse
EOF
MAX_RETRIES=3
for i in $(seq 1 $MAX_RETRIES); do
echo ">>> apt-get update attempt $i of $MAX_RETRIES"
if apt-get update; then
break
fi
if [ "$i" -eq "$MAX_RETRIES" ]; then
echo "WARNING: apt-get update failed after $MAX_RETRIES attempts"
exit 0
fi
sleep 5
done
apt-get install -y ca-certificates
apt-get clean
echo "=========================================="
echo "Apt repository configured successfully!"
echo "=========================================="