#!/bin/bash
# irelydata bulk download — resumable, sequential, with sha256 manifest
# Started: 2026-09-04 (operator task)
set -u
OUTDIR=/root/ir-assessment/redteam/irelydata/downloads
LOG=$OUTDIR/download.log
MANIFEST=$OUTDIR/sha256_manifest.txt
URLS=$OUTDIR/urls.txt

cd "$OUTDIR" || exit 1
: > "$LOG"
echo "# irelydata downloads $(date -Iseconds)" >> "$LOG"

while IFS= read -r url; do
    [ -z "$url" ] && continue
    fname="${url##*/}"
    echo "=== $(date -Iseconds) START $fname <- $url" >> "$LOG"
    # -C - : resume if partial; retry 5 times; no rate limit
    if curl -fSL -C - --retry 5 --retry-delay 10 --retry-all-errors \
            --connect-timeout 30 --max-time 7200 \
            -o "$fname" "$url" >> "$LOG" 2>&1; then
        size=$(stat -c%s "$fname")
        echo "=== $(date -Iseconds) OK $fname size=$size" >> "$LOG"
    else
        echo "=== $(date -Iseconds) FAIL $fname rc=$?" >> "$LOG"
    fi
done < "$URLS"

echo "=== $(date -Iseconds) HASHING" >> "$LOG"
sha256sum *.bak *.7z > "$MANIFEST" 2>>"$LOG"
echo "=== $(date -Iseconds) DONE" >> "$LOG"
ls -la >> "$LOG"
