#!/usr/bin/env bash
set -u
cd /srv/qwen/Qwen3.5-27B
BASE="https://huggingface.co/Qwen/Qwen3.5-27B/resolve/main"

small_files=(
  config.json
  tokenizer.json
  tokenizer_config.json
  chat_template.jinja
  model.safetensors.index.json
)

for f in "${small_files[@]}"; do
  echo "==== small $f ===="
  while true; do
    wget -c --tries=0 --timeout=60 --read-timeout=60 --waitretry=10 "$BASE/$f" -O "$f" && break
    echo "small $f failed, retry in 10s"
    sleep 10
  done
done

python3 - <<'PY' > /srv/qwen/Qwen3.5-27B/files.txt
import json
idx='model.safetensors.index.json'
o=json.load(open(idx))
for f in sorted(set(o['weight_map'].values())):
    print(f)
PY

while read -r f; do
  [ -z "$f" ] && continue
  echo "==== weight $f ===="
  while true; do
    wget -c --tries=0 --timeout=60 --read-timeout=60 --waitretry=10 "$BASE/$f" -O "$f" && break
    echo "weight $f failed, retry in 10s"
    sleep 10
  done
done < /srv/qwen/Qwen3.5-27B/files.txt

sha256sum *.json *.jinja *.safetensors > SHA256SUMS.txt
python3 - <<'PY'
from pathlib import Path
files=list(Path('.').glob('*.safetensors'))
print('safetensors', len(files))
print('total_bytes', sum(p.stat().st_size for p in files))
PY
