Update
This commit is contained in:
@@ -0,0 +1,73 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
SUBSTITUTERS=(
|
||||
"https://cache.garnix.io"
|
||||
"https://cache.m7.rs"
|
||||
"https://cache.nixos.org"
|
||||
"https://cache.soopy.moe"
|
||||
"https://chaotic-nyx.cachix.org"
|
||||
"https://colmena.cachix.org"
|
||||
"https://hyprland.cachix.org"
|
||||
"https://mirrors.tuna.tsinghua.edu.cn/nix-channels/store"
|
||||
"https://mirrors.ustc.edu.cn/nix-channels/store"
|
||||
"https://nix-community.cachix.org"
|
||||
"https://nix-gaming.cachix.org"
|
||||
"https://nixos-cache-proxy.cofob.dev"
|
||||
"https://nixos.snix.store"
|
||||
"https://nixos.tvix.store"
|
||||
)
|
||||
|
||||
TEST_HASH="sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="
|
||||
|
||||
clean_url() {
|
||||
echo "$1" | sed -e 's/^[[:space:]]*//' -e 's/[[:space:]]*$//'
|
||||
}
|
||||
|
||||
check_speed() {
|
||||
local url=$(clean_url "$1")
|
||||
local cache_info=$(curl -s -o /dev/null -w "%{http_code},%{time_total}" -L "${url}/nix-cache-info" --max-time 10 --insecure)
|
||||
IFS=',' read -r code time_info <<< "$cache_info"
|
||||
|
||||
if [[ "$code" == "200" ]]; then
|
||||
echo -e "\033[1;32m✓ nix-cache-info: ${time_info}s\033[0m"
|
||||
|
||||
local narinfo_time=$(curl -s -o /dev/null -w "%{time_total}" -L "${url}/${TEST_HASH}.narinfo" --max-time 10 --insecure)
|
||||
echo -e " .narinfo: \033[1;33m${narinfo_time}s\033[0m"
|
||||
|
||||
local nar_time=$(curl -s -o /dev/null -w "%{time_total}" -L "${url}/nar/${TEST_HASH}.nar.xz" --max-time 10 --insecure)
|
||||
echo -e " .nar.xz: \033[1;33m${nar_time}s\033[0m"
|
||||
|
||||
local speed=$(curl -s -o /dev/null -w "%{speed_download}" -L "${url}/nix-cache-info" --max-time 10 --insecure)
|
||||
echo -e " СКОРОСТЬ: \033[1;36m$(numfmt --to=iec-i --suffix=B/s $speed | sed 's/Bi *//')\033[0m"
|
||||
return 0
|
||||
else
|
||||
echo -e "\033[1;31m✗ nix-cache-info: $code (${time_info}s)\033[0m"
|
||||
return 1
|
||||
fi
|
||||
}
|
||||
|
||||
main() {
|
||||
echo "🚀 Тест скорости Nix Substituters ($(date '+%H:%M:%S'))"
|
||||
echo "=============================================="
|
||||
|
||||
local working=()
|
||||
|
||||
for url in "${SUBSTITUTERS[@]}"; do
|
||||
local clean_url=$(clean_url "$url")
|
||||
echo -e "\n\033[1;34m=== $clean_url ===\033[0m"
|
||||
|
||||
if check_speed "$url"; then
|
||||
working+=("$clean_url")
|
||||
fi
|
||||
echo "----------------------------------------"
|
||||
done
|
||||
|
||||
echo -e "\n\033[1;36m🏆 РЕКОМЕНДУЕМЫЙ ПОРЯДОК (по скорости):\033[0m"
|
||||
printf 'nix.settings.substituters = [\n'
|
||||
for url in "${working[@]}"; do
|
||||
printf ' "%s"\n' "$url"
|
||||
done
|
||||
printf '];\n'
|
||||
}
|
||||
|
||||
main
|
||||
Reference in New Issue
Block a user