#!/bin/bash
# Leva TODOS os arquivos do Sankhya do Multiseg (LXC 3212 no EVEO) para o /srv/sankhya
# do host Docker na WCI (IT995476-SNK-APP-WCI, 177.85.38.249).
#
# Rodar NO NO sp1-sd-inovatech-1.
#   pre-seed (origem ligada):  bash copia-payload-multiseg.sh
#   na janela (WildFly PARADO): bash copia-payload-multiseg.sh   # roda de novo, sobrescreve
#
# Provado: pct exec -> tar -> zstd -> ssh -> untar funciona ponta a ponta (25/09).
set -eu
CT=3212
H=177.85.38.249
SSHOPT="-i /root/.ssh/wci-dep -c aes128-gcm@openssh.com -o Compression=no -o StrictHostKeyChecking=no"
R=/srv/sankhya

envia () {  # <base> <alvo> <destino>
  echo "=== $1/$2  ->  $3"
  local t0=$SECONDS
  pct exec $CT -- tar -C "$1" --numeric-owner \
       --exclude="$2/standalone/tmp" --exclude="$2/standalone/data" \
       --exclude="$2/standalone/log" --exclude="$2/standalone/sysmon" \
       --exclude="$2/standalone/teapp" \
       -cf - "$2" \
    | zstd -1 -T8 \
    | ssh $SSHOPT ubuntu@$H "sudo mkdir -p '$3' && unzstd | sudo tar --numeric-owner -xf - -C '$3'"
  echo "    levou $((SECONDS-t0))s"
}

# 1) produção
envia /home/mgeweb wildfly_producao $R/prd/mgeweb

# 2) resto do /home/mgeweb para o TESTE (o prd já tem; o tst está vazio)
echo "=== /home/mgeweb (sem os wildfly) -> $R/tst/mgeweb"
pct exec $CT -- tar -C /home --numeric-owner \
     --exclude='mgeweb/wildfly_*' --exclude='mgeweb/log' --exclude='mgeweb/nohup.out' \
     -cf - mgeweb \
  | zstd -1 -T8 \
  | ssh $SSHOPT ubuntu@$H "sudo mkdir -p $R/tst && unzstd | sudo tar --numeric-owner -xf - -C $R/tst"

# 3) teste -> tem que virar wildfly_producao (o start-wildfly.sh é hardcoded nesse nome)
envia /home/mgeweb wildfly_teste $R/tst/mgeweb
ssh $SSHOPT ubuntu@$H "sudo rm -rf $R/tst/mgeweb/wildfly_producao && sudo mv $R/tst/mgeweb/wildfly_teste $R/tst/mgeweb/wildfly_producao"

# 4) treinamento (420 MB, NAO está rodando na origem - vai só para não perder arquivo)
envia /home/mgeweb wildfly_treina $R/extra

# 5) repositório de anexos (5,0 G) - é /volumes/repositorio; /home/mgeweb/repositorio é symlink
echo "=== /volumes/repositorio -> $R/shared/repositorio"
pct exec $CT -- tar -C /volumes --numeric-owner -cf - repositorio \
  | zstd -1 -T8 \
  | ssh $SSHOPT ubuntu@$H "sudo mkdir -p $R/shared && unzstd | sudo tar --numeric-owner -xf - -C $R/shared"

# 6) o symlink 'repositorio' dentro do home BRIGA com o bind mount do compose - remover
ssh $SSHOPT ubuntu@$H "for d in $R/prd/mgeweb $R/tst/mgeweb; do sudo test -L \$d/repositorio && sudo rm -f \$d/repositorio; done; sudo mkdir -p $R/shared/SankhyaW; true"

# 7) licença do SAS byte-exata (a que está lá tem 7649 B; a correta tem 7648, md5 b9b2a8f3...)
echo "=== licenca.dat"
pct exec $CT -- cat /home/mgeweb/wildfly_producao/standalone/configuration/.1416890510/licenca/licenca.dat \
  | ssh $SSHOPT ubuntu@$H "sudo mkdir -p $R/sas/licenca && sudo tee $R/sas/licenca/licenca.dat >/dev/null && sudo md5sum $R/sas/licenca/licenca.dat && sudo stat -c '%s bytes' $R/sas/licenca/licenca.dat"
echo "    esperado: 7648 bytes / md5 b9b2a8f37c62e0a3e282c95700887380"

# 8) dono dos arquivos (o uid 1001 já barrou gravação de anexo em outro cliente)
ssh $SSHOPT ubuntu@$H "sudo chown -R 1000:1000 $R/shared/repositorio || true; sudo ls -ld $R/shared/repositorio"

echo "=== resumo no destino"
ssh $SSHOPT ubuntu@$H "sudo du -sh $R/prd $R/tst $R/shared $R/extra 2>/dev/null; sudo ls $R/prd/mgeweb $R/tst/mgeweb | sort -u | head -30"
echo "=== FIM"
