# 🚀 Comandos Rápidos para Compilar NoIdle ## 📋 Escolha Seu Ambiente --- ## 🪟 Windows (Recomendado) ### Método 1: Comando Simples (Rápido) ```powershell # Instalar dependências pip install pyinstaller pywin32 psutil requests pystray pillow schedule # Compilar pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py # Resultado: dist\NoIdle.exe ``` ### Método 2: Script Automatizado (Recomendado) ```powershell # Executar script de build .\BUILD_NOIDLE.ps1 # Com limpeza prévia .\BUILD_NOIDLE.ps1 -Clean # Com teste após build .\BUILD_NOIDLE.ps1 -Test # Com ícone personalizado .\BUILD_NOIDLE.ps1 -Icon "noidle.ico" ``` --- ## 🐧 Linux (Docker) ### Método 1: Comando Docker Direto ```bash # Usando imagem pronta docker run --rm -v $(pwd):/src cdrx/pyinstaller-windows:python3 \ /bin/bash -c "pip install pywin32 psutil requests pystray pillow schedule && \ pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py" # Resultado: dist/NoIdle.exe ``` ### Método 2: Script Automatizado (Recomendado) ```bash # Tornar executável (primeira vez) chmod +x BUILD_LINUX.sh # Executar ./BUILD_LINUX.sh # Seguir as opções do menu ``` ### Método 3: Dockerfile Customizado ```bash # Construir imagem docker build -f Dockerfile.build -t noidle-builder . # Compilar docker run --rm -v $(pwd):/src noidle-builder # Resultado: dist/NoIdle.exe ``` --- ## 🧪 Testar o Executável ### No Windows: ```powershell # Teste 1: Executar normalmente .\dist\NoIdle.exe # Teste 2: Modo silencioso .\dist\NoIdle.exe --silent # Teste 3: Verificar processo Start-Process -FilePath ".\dist\NoIdle.exe" -ArgumentList "--silent" -WindowStyle Hidden Start-Sleep -Seconds 3 Get-Process -Name "NoIdle" # Teste 4: Verificar tamanho Get-Item .\dist\NoIdle.exe | Select-Object Name, @{N='Size(MB)';E={[math]::Round($_.Length/1MB,2)}}, LastWriteTime ``` --- ## 📦 Criar Pacote de Distribuição ### Estrutura do Pacote: ``` NoIdle-v1.0/ ├── NoIdle.exe ├── CONFIGURAR_AUTOSTART_NOIDLE.ps1 ├── VERIFICAR_E_CORRIGIR_NOIDLE.ps1 ├── GUIA_RAPIDO_AUTOSTART.md ├── LEIA_PRIMEIRO.md └── README.txt ``` ### Windows (PowerShell): ```powershell # Criar diretório New-Item -ItemType Directory -Path "NoIdle-Package" -Force # Copiar arquivos Copy-Item "dist\NoIdle.exe" -Destination "NoIdle-Package\" Copy-Item "CONFIGURAR_AUTOSTART_NOIDLE.ps1" -Destination "NoIdle-Package\" Copy-Item "VERIFICAR_E_CORRIGIR_NOIDLE.ps1" -Destination "NoIdle-Package\" Copy-Item "GUIA_RAPIDO_AUTOSTART.md" -Destination "NoIdle-Package\" Copy-Item "LEIA_PRIMEIRO.md" -Destination "NoIdle-Package\" # Criar ZIP Compress-Archive -Path "NoIdle-Package\*" -DestinationPath "NoIdle-v1.0.zip" -Force # Limpar Remove-Item -Path "NoIdle-Package" -Recurse -Force ``` ### Linux (Bash): ```bash # Criar diretório mkdir -p NoIdle-Package # Copiar arquivos cp dist/NoIdle.exe NoIdle-Package/ cp CONFIGURAR_AUTOSTART_NOIDLE.ps1 NoIdle-Package/ cp VERIFICAR_E_CORRIGIR_NOIDLE.ps1 NoIdle-Package/ cp GUIA_RAPIDO_AUTOSTART.md NoIdle-Package/ cp LEIA_PRIMEIRO.md NoIdle-Package/ # Criar ZIP zip -r NoIdle-v1.0.zip NoIdle-Package/ # Limpar rm -rf NoIdle-Package ``` --- ## 🔧 Troubleshooting ### Problema: "pip não encontrado" ```powershell # Windows python -m pip install --upgrade pip # Linux sudo apt install python3-pip ``` ### Problema: "pyinstaller não encontrado" ```powershell # Instalar globalmente pip install pyinstaller # Ou executar como módulo python -m PyInstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py ``` ### Problema: "ModuleNotFoundError" ```powershell # Reinstalar todas as dependências pip install --force-reinstall pywin32 psutil requests pystray pillow schedule ``` ### Problema: "Executável não inicia" ```powershell # Compilar com console para ver erros pyinstaller --onefile --console --name NoIdle-debug CLIENTE_CORRIGIDO.py .\dist\NoIdle-debug.exe ``` ### Problema: "Docker não funciona" ```bash # Verificar Docker docker --version # Testar Docker docker run hello-world # Dar permissões (se necessário) sudo usermod -aG docker $USER newgrp docker ``` --- ## ⚡ Comandos Quick Reference ### Build Rápido (Windows): ```powershell pip install pyinstaller pywin32 psutil requests pystray pillow schedule && pyinstaller --onefile --windowed --name NoIdle CLIENTE_CORRIGIDO.py ``` ### Build Rápido (Linux): ```bash ./BUILD_LINUX.sh ``` ### Testar Rápido: ```powershell .\dist\NoIdle.exe --silent Get-Process -Name "NoIdle" ``` ### Limpar Tudo: ```powershell # Windows Remove-Item -Path "build","dist" -Recurse -Force -ErrorAction SilentlyContinue Remove-Item -Path "*.spec" -Force -ErrorAction SilentlyContinue # Linux rm -rf build dist *.spec ``` --- ## 📊 Opções de PyInstaller | Opção | Descrição | |-------|-----------| | `--onefile` | Gera um único executável | | `--windowed` | Sem janela de console (GUI) | | `--console` | Com janela de console (debug) | | `--name NoIdle` | Nome do executável | | `--icon=icon.ico` | Adicionar ícone | | `--upx-dir=C:\upx` | Comprimir com UPX | | `--clean` | Limpar cache antes de compilar | | `--debug all` | Modo debug completo | --- ## 🎯 Workflow Recomendado ### 1. Desenvolvimento (Windows): ```powershell # Testar código Python python CLIENTE_CORRIGIDO.py # Compilar .\BUILD_NOIDLE.ps1 -Clean -Test # Verificar resultado .\dist\NoIdle.exe --silent ``` ### 2. Produção (Linux): ```bash # Compilar para Windows ./BUILD_LINUX.sh # Criar pacote # (escolher opção no menu do script) # Distribuir # NoIdle-v1.0.zip ``` ### 3. Distribuição: ``` 1. Testar em Windows limpo 2. Enviar para clientes 3. Fornecer scripts de configuração 4. Documentação: LEIA_PRIMEIRO.md ``` --- ## ✅ Checklist de Build Antes de distribuir: - [ ] Código testado e funcionando - [ ] Dependências instaladas - [ ] Build concluído sem erros - [ ] Executável testado em modo normal - [ ] Executável testado em modo `--silent` - [ ] Tamanho do arquivo OK (15-30 MB) - [ ] Testado em Windows limpo (sem Python) - [ ] Pacote de distribuição criado - [ ] Documentação incluída - [ ] Scripts PowerShell incluídos --- ## 🚀 TL;DR (Começar Agora) **Windows:** ```powershell .\BUILD_NOIDLE.ps1 ``` **Linux:** ```bash ./BUILD_LINUX.sh ``` **Resultado:** `dist/NoIdle.exe` pronto para usar! 🎉 --- **Bom build! 🔨**