43 lines
1.6 KiB
Bash
Executable File
43 lines
1.6 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/python3 ./venv/bin/pyarmor gen --outer -O $STAGE_DIR app.py drivers/ utils/ config.py
|
|
|
|
|
|
echo "[BUILD] Copiando arquivos estáticos..."
|
|
cp hosts.example.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/
|