Skip to content

fix: correcoes de distribuicao, CLI e Menu de Contexto#5

Merged
LAMP-LUCAS merged 3 commits intodevelopfrom
fix/cli-install-distribution
Feb 23, 2026
Merged

fix: correcoes de distribuicao, CLI e Menu de Contexto#5
LAMP-LUCAS merged 3 commits intodevelopfrom
fix/cli-install-distribution

Conversation

@LAMP-LUCAS
Copy link
Copy Markdown
Owner

@LAMP-LUCAS LAMP-LUCAS commented Feb 22, 2026

Pull Request: Aprimoramento de Automação e Resiliência do Instalador (CLI)

📌 Descrição

Este Pull Request introduz melhorias significativas no processo de instalação e desinstalação do fotonPDF, garantindo uma experiência de usuário (UX) muito mais fluida, silenciosa e resiliente com o uso do Inno Setup em conjunto com a nossa CLI nativa.

Anteriormente, o instalador congelava durante etapas ocultas devido a prompts interativos do terminal, e a ausência de uma identidade única (AppId) permitia registros duplicados no Windows.

🚀 O que foi alterado?

🛠️ Inno Setup (foton_installer.iss)

  • Adição de Identidade Única (AppId): Impede empilhamento de múltiplas instalações e resolve conflitos com "registros fantasmas", unificando todos os updates sob uma única entidade no Windows.
  • Integração de Visualizador Padrão: Nova checkbox opcional (não marcada por padrão) no instalador que permite ao usuário definir o fotonPDF como o leitor de .pdf padrão do sistema logo na instalação.
  • Flags de Execução e RunOnce: O acionamento de scripts CLI passou a usar diretivas assertivas (RunOnceId para desinstalação limpa) evitando execuções duplicadas e warnings do compilador.
  • Redirecionamento de Artefatos: O executável compilado agora é gerado organizadamente no diretório /dist.
  • Idioma Fixo (PT-BR): O idioma do Setup foi unificado para Português Brasileiro, evitando inconsistências.

💻 Scripts de CLI (Python)

  • Modo Silencioso (--quiet / -q) no setup_wizard.py: O script agora detecta se está rodando via Inno Setup. Quando em background, ele suprime qualquer input (click.confirm ou click.pause()) para não enclausurar o instalador em uma tela invisível.
  • Associação Padrão via background (--set-default): Implementada via parâmetro no comando foton setup, ativando o Regedit (OS Integration) de forma não bloqueante apenas se a checkbox do Inno Setup for marcada.
  • Modo Desinstalação Sem Confirmações (-y): Ajuste severo no uninstall_wizard.py para respeitar a flag "yes" plenamente, removendo qualquer resquício de wait_for_keypress().

📂 Pipeline & Configuração

  • Refatoração do .gitignore para monitorar estritamente o foton.spec da dual-compile e ignorar arquivos finais residuais (*.exe).

✅ Como Testar

  1. Baixe o artefato ou compile o projeto localmente (python scripts/build_exe.py e depois iscc foton_installer.iss).
  2. Execute o instalador final na pasta dist/fotonPDF_Setup_v1.0.0.exe.
  3. Verifique a integração 100% silenciosa do Menu de Contexto (clique direito do Windows -> Abrir com fotonPDF).
  4. Tente desinstalar pelo Painel de Controle (Configurações do Windows). Confirme que a desinstalação flui perfeitamente, o atalho é removido do sistema, e nenhuma janela "trava".

Branch: fix/cli-install-distribution
Relacionado a: Release v1.1.0

  • Atualizado Inno Setup (foton_installer.iss) com auto-pathing do usuario e desinstalacao limpa.

  • Registrado executaveis duplos (foton e foton-cli) no PyInstaller spec.

  • Adicionado safety guard contra stdout nulo pra CLI en mode console=False.

  • Corrigido double-quoting de args (%1 -> %V) no Windows Registry Adapter.

  • Adicionado testes de integracao p/ comportamento dual-exe e OS distribution no registry.

- Atualizado Inno Setup (foton_installer.iss) com auto-pathing do usuario e desinstalacao limpa.

- Registrado executaveis duplos (foton e foton-cli) no PyInstaller spec.

- Adicionado safety guard contra stdout nulo pra CLI en mode console=False.

- Corrigido double-quoting de args (%1 -> %V) no Windows Registry Adapter.

- Adicionado testes de integracao p/ comportamento dual-exe e OS distribution no registry.
- build_exe.py agora invoca '--noconfirm foton.spec' em vez de contornar o arquivo de spec.

- sign_exe.py agora itera por todos os .exe no dist path para garantir assinatura multi-binaria.

- release.yml configurado pra fazer o upload wildcard dos executaveis gerados (foton.exe e foton-cli.exe).
…stalacao

- Adiciona suporte no Inno Setup para definir o visualizador de PDF padrao (opcional).
- Oculta prompts interativos da CLI via flags '--quiet' e '--yes' ao configurar/remover aplicacao no OS.
- Adiciona 'AppId' no instalador para impedir empilhamento e conflitos com registros fantasmas de versoes sobrepostas.
- Atualiza 'main.py' e scripts de CLI para tratar a flag de setup default de forma background.
- Atribui 'RunOnceId' ao Inno Setup para rodar a limpeza apenas uma vez na desinstalacao.
- Modifica '.gitignore' isolando os executaveis finais gerados e rastreando 'foton.spec'.
@LAMP-LUCAS LAMP-LUCAS marked this pull request as ready for review February 23, 2026 02:44
@LAMP-LUCAS LAMP-LUCAS merged commit 7507282 into develop Feb 23, 2026
2 checks passed
@LAMP-LUCAS LAMP-LUCAS deleted the fix/cli-install-distribution branch February 23, 2026 02:44
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant