Files
olt-api/tools/build.sh
2026-02-18 10:17:09 -03:00

43 lines
1.5 KiB
Bash
Executable File

# Definir diretórios (Relativos à raiz do projeto, assumindo execução via ./tools/build.sh)
# Mas vamos garantir que o script rode da raiz
cd "$(dirname "$0")/.."
echo "[BUILD] Limpando builds anteriores..."
rm -rf dist build release_production.zip
# Definir diretórios
STAGE_DIR="dist/ipv0-olt-api"
RELEASE_DIR="dist/release"
mkdir -p $STAGE_DIR
mkdir -p $RELEASE_DIR
echo "[BUILD] Iniciando Obfuscação Pyarmor (Modo Full)..."
# Usando Pyarmor para proteger todo o código fonte
# O comando gen irá usar a configuração existente em .pyarmor se houver, ou criar uma nova.
# --outer: Permite usar chave de licença externa (license.key via outer_keyname=license.key)
./venv/bin/pyarmor gen --outer -O $STAGE_DIR app.py drivers/ utils/ config.py
echo "[BUILD] Copiando arquivos estáticos..."
cp hosts.json $STAGE_DIR/
cp requirements.txt $STAGE_DIR/
cp README.md $STAGE_DIR/
cp tools/debug.py $STAGE_DIR/
cp tools/service/install.sh $STAGE_DIR/
cp tools/service/ipv0-olt-api.service $STAGE_DIR/
chmod +x $STAGE_DIR/install.sh
echo "[BUILD] Criando arquivo ZIP (via Python)..."
# Usar Python para zipar o CONTEÚDO do diretório de staging para dentro do zip
# O zip final ficará em dist/release/ipv0-olt-api.zip
# Estando em dist/ipv0-olt-api, ../release aponta para dist/release
cd $STAGE_DIR
../../venv/bin/python3 -c "import shutil; shutil.make_archive('../release/ipv0-olt-api', 'zip', '.')"
cd ../..
echo "✅ Build Process Complete!"
echo "Artifacts:"
echo " - Staging: $STAGE_DIR"
echo " - Release: $RELEASE_DIR/ipv0-olt-api.zip"
ls -F $RELEASE_DIR/