testsAndMisc/linux_configuration/scripts/single_use/misc/testsAndMisc-bash/download.sh
Krzysztof kuhy Rudnicki 42a66a1419 refactor(linux_configuration/scripts): split all scripts into single_use/ and periodic_background/
- Move all linux_configuration scripts into two semantic categories:
  - single_use/: scripts run once manually (fresh install, fixes, setup)
  - periodic_background/: scripts run by systemd timers or daemons
- Preserve existing subdirectory structure within each category
- Fix lib/common.sh source paths for new directory depths
- Fix CONFIG_DIR depth in setup_periodic_system.sh and check_and_enable_services.sh
- Update all references in tests, fresh-install/main.sh, nix modules, and docs
- Fix check_polling_antipatterns.sh false positives (||, regex |, case patterns, jq strings)
- Fix pre-existing mypy exclusion path and type annotations for moved tools/ directory
- Rewrite check_polling_antipatterns.sh using awk (no bash regex loops); add require_serial: true
2026-05-15 00:32:35 +02:00

47 lines
1.3 KiB
Bash
Executable File

#!/bin/bash
# Check if there are any .txt files in the current directory
txt_files=(*.txt)
if [ ${#txt_files[@]} -eq 0 ]; then
echo "No .txt files found in the current directory!"
exit 1
fi
total_files=0
total_size=0
downloaded_files=0
downloaded_size=0
# Calculate total number of files and total size to download
for file in *.txt; do
while IFS= read -r url; do
if [[ -n $url ]]; then
total_files=$((total_files + 1))
size=$(wget --spider "$url" 2>&1 | awk '/Length/ {print $2}')
total_size=$((total_size + size))
fi
done < "$file"
done
# Loop through each .txt file and download each URL in parallel
for file in *.txt; do
echo "Processing $file..."
while IFS= read -r url; do
if [[ -n $url ]]; then
{
wget -q --show-progress "$url"
downloaded_files=$((downloaded_files + 1))
size=$(wget --spider "$url" 2>&1 | awk '/Length/ {print $2}')
downloaded_size=$((downloaded_size + size))
remaining_files=$((total_files - downloaded_files))
remaining_size=$((total_size - downloaded_size))
echo "Downloaded: $downloaded_files/$total_files files, $downloaded_size/$total_size bytes"
echo "Remaining: $remaining_files files, $remaining_size bytes"
} &
fi
done < "$file"
done
# Wait for all background jobs to complete
wait