dotfiles/bin/update_mirrorlist
Rodolphe Breard df5c3bd564 Strict mode
2019-07-13 13:16:01 +02:00

32 lines
787 B
Bash
Executable file

#!/bin/bash
set -euo pipefail
IFS=$'\n\t'
pacman_dir="/etc/pacman.d"
mirror_file="${pacman_dir}/mirrorlist"
mirror_pacnew="${mirror_file}.pacnew"
mirror_orig="${mirror_file}.orig"
mirror_tmp="/tmp/mirrorlist.tmp"
rank_util="rankmirrors"
if ! hash "$rank_util" 2>/dev/null; then
echo "$rank_util: command not found" >&2
echo "You may need to install the 'pacman-contrib' package." >&2
exit 1
fi
if [ -f "$mirror_pacnew" ]; then
echo "Using $mirror_pacnew"
mv "$mirror_pacnew" "$mirror_orig"
fi
if [ ! -f "$mirror_orig" ]; then
echo "$mirror_orig: file not found" >&2
exit 1
fi
awk '/^## France$/{f=1}f==0{next}/^$/{exit}{print substr($0, 2)}' "$mirror_orig" >"$mirror_tmp"
"$rank_util" -n 6 "$mirror_tmp" >"$mirror_file"
rm -f "$mirror_tmp"
pacman -Syy