Estrutura inicial, ambiente IA
This commit is contained in:
+66
@@ -0,0 +1,66 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
TARGET_DIR="${1:-}"
|
||||
EXPORT_URL="${2:-}"
|
||||
|
||||
if [[ -z "$TARGET_DIR" || -z "$EXPORT_URL" ]]; then
|
||||
echo "Uso: $0 <pasta_destino> <url_webservice>"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v curl >/dev/null 2>&1; then
|
||||
echo "Erro: curl nao encontrado."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
if ! command -v unzip >/dev/null 2>&1; then
|
||||
echo "Erro: unzip nao encontrado."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
TMP_DIR="$(mktemp -d)"
|
||||
ZIP_FILE="$TMP_DIR/vitruvio_completo.zip"
|
||||
EXTRACT_DIR="$TMP_DIR/extract"
|
||||
PASTAS_EXPORTACAO=(Paineis Libs WebServices Processos Relatorios)
|
||||
|
||||
cleanup() {
|
||||
rm -rf "$TMP_DIR"
|
||||
}
|
||||
trap cleanup EXIT
|
||||
|
||||
mkdir -p "$EXTRACT_DIR"
|
||||
mkdir -p "$TARGET_DIR"
|
||||
|
||||
echo "Baixando ZIP do webservice..."
|
||||
curl -fL "$EXPORT_URL" -o "$ZIP_FILE"
|
||||
|
||||
echo "Validando ZIP..."
|
||||
unzip -tq "$ZIP_FILE" >/dev/null
|
||||
|
||||
echo "Extraindo ZIP..."
|
||||
unzip -qo "$ZIP_FILE" -d "$EXTRACT_DIR"
|
||||
|
||||
for pasta in "${PASTAS_EXPORTACAO[@]}"; do
|
||||
if [[ ! -d "$EXTRACT_DIR/$pasta" ]]; then
|
||||
echo "Erro: pasta obrigatoria nao encontrada no ZIP: $pasta"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
echo "Sincronizando conteudo em $TARGET_DIR..."
|
||||
for pasta in "${PASTAS_EXPORTACAO[@]}"; do
|
||||
mkdir -p "$TARGET_DIR/$pasta"
|
||||
|
||||
if command -v rsync >/dev/null 2>&1; then
|
||||
rsync -a --delete "$EXTRACT_DIR/$pasta/" "$TARGET_DIR/$pasta/"
|
||||
else
|
||||
find "$TARGET_DIR/$pasta" -mindepth 1 -maxdepth 1 -exec rm -rf {} +
|
||||
cp -a "$EXTRACT_DIR/$pasta/." "$TARGET_DIR/$pasta/"
|
||||
fi
|
||||
|
||||
done
|
||||
|
||||
echo "Sincronizacao concluida com sucesso."
|
||||
Reference in New Issue
Block a user