9ba3d05f37
Quite often users probably just use first one, and we want to make use of cloudflare's cache if possible.
176 lines
6.9 KiB
Bash
Executable File
176 lines
6.9 KiB
Bash
Executable File
#!@TERMUX_PREFIX@/bin/bash
|
|
|
|
if [ "$1" == "--help" ] || [ "$1" == "-help" ]; then
|
|
echo "Script for redirecting subscribed repositories to mirrors."
|
|
echo "You can choose between mirrors listed at"
|
|
echo "https://github.com/termux/termux-packages/wiki/Mirrors"
|
|
exit 0
|
|
fi
|
|
|
|
select_repository() {
|
|
if [ "$1" == "Default repositories (CF)" ]; then
|
|
echo "[*] Termux primary host (worldwide) selected"
|
|
MAIN="https://packages-cf.termux.org/apt/termux-main"
|
|
ROOT="https://packages-cf.termux.org/apt/termux-root"
|
|
X11="https://packages-cf.termux.org/apt/termux-x11"
|
|
|
|
elif [ "$1" == "Default repositories" ]; then
|
|
echo "[*] Termux primary host (EU) selected"
|
|
MAIN="https://packages.termux.org/apt/termux-main"
|
|
ROOT="https://packages.termux.org/apt/termux-root"
|
|
X11="https://packages.termux.org/apt/termux-x11"
|
|
|
|
elif [ "$1" == "GH Mirrors by Kcubeterm" ]; then
|
|
echo "[*] GH mirrors selected"
|
|
MAIN="https://dl.kcubeterm.com/termux-main"
|
|
ROOT="https://dl.kcubeterm.com/termux-root"
|
|
X11="https://dl.kcubeterm.com/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by A1batross" ]; then
|
|
echo "[*] A1batross mirrors selected"
|
|
MAIN="https://termux.mentality.rip/termux-main"
|
|
ROOT="https://termux.mentality.rip/termux-root"
|
|
X11="https://termux.mentality.rip/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by Astra ISP" ]; then
|
|
echo "[*] Astra ISP (UA) mirrors selected"
|
|
MAIN="https://termux.astra.in.ua/apt/termux-main"
|
|
ROOT="https://termux.astra.in.ua/apt/termux-root"
|
|
X11="https://termux.astra.in.ua/apt/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by Bardia Moshiri" ]; then
|
|
echo "[*] Bardia Moshiri (Iran) mirrors selected"
|
|
MAIN="https://mirror.bardia.tech/termux/termux-packages-24/"
|
|
ROOT="https://mirror.bardia.tech/termux/termux-root-packages-24/"
|
|
X11="https://mirror.bardia.tech/termux/x11-packages/"
|
|
|
|
elif [ "$1" == "Mirrors by Grimler" ]; then
|
|
echo "[*] Grimler's (NL) mirrors selected"
|
|
MAIN="https://grimler.se/termux-packages-24"
|
|
ROOT="https://grimler.se/termux-root-packages-24"
|
|
X11="https://grimler.se/x11-packages"
|
|
|
|
elif [ "$1" == "Mirrors by Librehat" ]; then
|
|
echo "[*] Librehat's mirrors selected"
|
|
MAIN="https://termux.librehat.com/apt/termux-main"
|
|
ROOT="https://termux.librehat.com/apt/termux-root"
|
|
X11="https://termux.librehat.com/apt/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by Mwt" ]; then
|
|
echo "[*] Mwt's (USA) mirrors selected"
|
|
MAIN="https://mirror.mwt.me/termux/main"
|
|
ROOT="https://mirror.mwt.me/termux/root"
|
|
X11="https://mirror.mwt.me/termux/x11"
|
|
|
|
elif [ "$1" == "Mirrors by Sahilister" ]; then
|
|
echo "[*] Sahilister's (DE) mirrors selected"
|
|
MAIN="https://termux.sahilister.in/apt/termux-main"
|
|
ROOT="https://termux.sahilister.in/apt/termux-root"
|
|
X11="https://termux.sahilister.in/apt/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by Tsinghua University" ]; then
|
|
echo "[*] Tsinghua's (CN) mirrors selected"
|
|
MAIN="https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-main"
|
|
ROOT="https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-root"
|
|
X11="https://mirrors.tuna.tsinghua.edu.cn/termux/apt/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by BFSU" ]; then
|
|
echo "[*] BFSU (CN) mirrors selected"
|
|
MAIN="https://mirrors.bfsu.edu.cn/termux/apt/termux-main"
|
|
ROOT="https://mirrors.bfsu.edu.cn/termux/apt/termux-root"
|
|
X11="https://mirrors.bfsu.edu.cn/termux/apt/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by NJU" ]; then
|
|
echo "[*] NJU (CN) mirrors selected"
|
|
MAIN="https://mirror.nju.edu.cn/termux/apt/termux-main"
|
|
ROOT="https://mirror.nju.edu.cn/termux/apt/termux-root"
|
|
X11="https://mirror.nju.edu.cn/termux/apt/termux-x11"
|
|
|
|
elif [ "$1" == "Mirrors by USTC" ]; then
|
|
echo "[*] USTC (CN) mirrors selected"
|
|
MAIN="https://mirrors.ustc.edu.cn/termux/apt/termux-main"
|
|
ROOT="https://mirrors.ustc.edu.cn/termux/apt/termux-root"
|
|
X11="https://mirrors.ustc.edu.cn/termux/apt/termux-x11"
|
|
|
|
else
|
|
echo "[!] Error: unknown repository: '$1'. Exiting"
|
|
exit 1
|
|
fi
|
|
|
|
replace_repository sources.list $MAIN "stable main" "$2" "Main repository"
|
|
replace_repository sources.list.d/root.list $ROOT "root stable" "$2" "Root repository"
|
|
replace_repository sources.list.d/x11.list $X11 "x11 main" "$2" "X11 repository"
|
|
}
|
|
|
|
replace_repository() {
|
|
if [[ "$4" == *"$5"* ]]; then
|
|
SOURCE_FILE="$1"
|
|
NEW_URL="$2"
|
|
COMPONENT_SUITE="$3"
|
|
|
|
TMPFILE="$(mktemp $TMPDIR/$(basename ${SOURCE_FILE}).XXXXXX)"
|
|
if [ "$1" == "sources.list" ]; then
|
|
echo "# The main termux repository:" >> "$TMPFILE"
|
|
fi
|
|
echo "deb ${NEW_URL} ${COMPONENT_SUITE}" >> "$TMPFILE"
|
|
echo " Changing ${5,,}" #${,,} converts to lower case
|
|
mv "$TMPFILE" "@TERMUX_PREFIX@/etc/apt/${SOURCE_FILE}"
|
|
fi
|
|
}
|
|
|
|
TEMPFILE="$(mktemp @TERMUX_PREFIX@/tmp/mirror.XXXXXX)"
|
|
|
|
REPOSITORIES=()
|
|
REPOSITORIES+=("Main repository" "termux-packages" "on")
|
|
if [ -f "@TERMUX_PREFIX@/etc/apt/sources.list.d/root.list" ]; then
|
|
REPOSITORIES+=("Root repository" "termux-root-packages" "off")
|
|
fi
|
|
if [ -f "@TERMUX_PREFIX@/etc/apt/sources.list.d/x11.list" ]; then
|
|
REPOSITORIES+=("X11 repository" "x11-packages" "off")
|
|
fi
|
|
|
|
dialog \
|
|
--title "termux-change-repo" --clear \
|
|
--checklist "Which repositories do you want to edit? Select with space." 0 0 0 \
|
|
"${REPOSITORIES[@]}" --and-widget \
|
|
--title "termux-change-repo" --clear \
|
|
--radiolist "Which mirror do you want to use?" 0 0 0 \
|
|
"Default repositories" "Default host" on \
|
|
"Default repositories (CF)" "Default host with CloudFlare endpoint" on \
|
|
"GH Mirrors by Kcubeterm" "Hosted on Github Release" off \
|
|
"Mirrors by A1batross" "Hosted on termux.mentality.rip" off \
|
|
"Mirrors by Astra ISP" "Hosted on termux.astra.in.ua" off \
|
|
"Mirrors by Bardia Moshiri" "Hosted on mirror.bardia.tech" off \
|
|
"Mirrors by Grimler" "Hosted on grimler.se" off \
|
|
"Mirrors by Librehat" "Hosted on termux.librehat.com" off \
|
|
"Mirrors by Mwt" "Hosted on mirror.mwt.me" off \
|
|
"Mirrors by Sahilister" "Hosted on termux.sahilister.in" off \
|
|
"Mirrors by Tsinghua University" "Hosted on mirrors.tuna.tsinghua.edu.cn" off \
|
|
"Mirrors by BFSU" "Hosted on mirrors.bfsu.edu.cn" off \
|
|
"Mirrors by NJU" "Hosted on mirror.nju.edu.cn" off \
|
|
"Mirrors by USTC" "Hosted on mirrors.ustc.edu.cn" off \
|
|
2> "$TEMPFILE"
|
|
|
|
retval=$?
|
|
clear
|
|
|
|
case $retval in
|
|
0)
|
|
IFS=$'\t' read REPOSITORIES MIRROR <<< "$(more $TEMPFILE)"
|
|
select_repository "$MIRROR" "$REPOSITORIES"
|
|
;;
|
|
1)
|
|
# Cancel pressed
|
|
exit
|
|
;;
|
|
255)
|
|
# Esc pressed
|
|
exit
|
|
;;
|
|
esac
|
|
|
|
rm "$TEMPFILE"
|
|
|
|
echo "[*] Running apt update"
|
|
apt update
|