Skip to content

Commit

Permalink
Improve locate mirror script (#2679)
Browse files Browse the repository at this point in the history
  • Loading branch information
enoch85 committed Sep 19, 2024
1 parent ac8b7cc commit 46b5fc9
Showing 1 changed file with 42 additions and 7 deletions.
49 changes: 42 additions & 7 deletions addons/locate_mirror.sh
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,42 @@
# T&M Hansson IT AB © - 2024, https://www.hanssonit.se/

true
SCRIPT_NAME="Locate Mirror"
SCRIPT_NAME="Locate mirror"
# shellcheck source=lib.sh
source /var/scripts/fetch_lib.sh
SCRIPT_EXPLAINER="To make downloads as fast as possible when updating Ubuntu \
you should download mirrors that are as geographically close to you as possible.
Please note that there are no guarantees that the download mirrors \
this script finds will remain for the lifetime of this server.
Because of this, we don't recommend that you change the mirror unless you live far away from the default.
This is the method used: https://github.com/vegardit/fast-apt-mirror.sh"

# Check for errors + debug code and abort if something isn't right
# 1 = ON
# 0 = OFF
DEBUG=0
debug_mode

# Must be root
root_check

# Check if Locate Mirror is already installed
if ! [ -f /usr/local/bin/fast-apt-mirror ]
then
# Ask for installing
install_popup "$SCRIPT_NAME"
else
# Ask for removal or reinstallation
reinstall_remove_menu "$SCRIPT_NAME"
# Removal
rm -f /usr/local/bin/fast-apt-mirror
rm -f /etc/apt/sources.list.backup
# Show successful uninstall if applicable
removal_popup "$SCRIPT_NAME"
fi

# Check where the best mirrors are and update
msg_box "To make downloads as fast as possible when updating Ubuntu \
you should download mirrors that are as geographically close to you as possible.
Expand All @@ -29,9 +58,8 @@ curl_to_dir https://raw.githubusercontent.com/vegardit/fast-apt-mirror.sh/v1/ fa
mv /usr/local/bin/fast-apt-mirror.sh /usr/local/bin/fast-apt-mirror
chmod 755 /usr/local/bin/fast-apt-mirror

# Variables
CURRENT_MIRROR=$(fast-apt-mirror current)
FIND_MIRROR=$(fast-apt-mirror find -v --healthchecks 100)
# Check current mirror
CURRENT_MIRROR="$(fast-apt-mirror current)"
msg_box "Current mirror is $CURRENT_MIRROR"

# Ask
Expand All @@ -40,18 +68,25 @@ then
print_text_in_color "$ICyan" "Keeping $CURRENT_MIRROR as mirror..."
sleep 1
else
if [[ "$KEYBOARD_LAYOUT" =~ ,|/|_ ]]
then
msg_box "Your keymap (country code) contains more than one language, or a special character. ($KEYBOARD_LAYOUT)
This script can only handle one keymap at the time.\nThe default mirror ($CURRENT_MIRROR) will be kept."
exit 1
fi
# Find
FIND_MIRROR="$(fast-apt-mirror find -v --healthchecks 100 --speedtests 10 --country "$KEYBOARD_LAYOUT")"
print_text_in_color "$ICyan" "Locating the best mirrors..."
if [ "$CURRENT_MIRROR/" != "$FIND_MIRROR" ]
if [ "$CURRENT_MIRROR" != "$FIND_MIRROR" ]
then
if yesno_box_yes "Do you want to replace the $CURRENT_MIRROR with $FIND_MIRROR?"
then
# Backup
cp -f /etc/apt/sources.list /etc/apt/sources.list.backup
# Replace
if fast-apt-mirror current --apply # TODO is fast-apt-mirror.sh set better here?
if fast-apt-mirror set "$FIND_MIRROR"
then
msg_box "Your Ubuntu repo was successfully changed to $FASTEST_MIRROR"
msg_box "Your Ubuntu repo was successfully changed to $FIND_MIRROR"
fi
fi
else
Expand Down

0 comments on commit 46b5fc9

Please sign in to comment.