Skip to content

Conversation

mauriciodelima21
Copy link
Contributor

Este PR reescreve o instalador install.sh para ser totalmente compatível com POSIX (/bin/sh), garantindo funcionamento em Debian, Ubuntu, Fedora/RHEL, Arch e sistemas baseados em rpm-ostree, sem depender de recursos exclusivos do Bash.

Principais mudanças:
Removidos recursos específicos do Bash:

${var,,} substituído por tr para conversão em minúsculas

[[ ... ]] substituído por [ ... ]

Operador =~ regex substituído por estruturas case

Criada a função auxiliar dl_file() para tratar downloads de forma mais robusta com wget ou curl.

Melhorado o tratamento de erros e códigos de saída claros para:

  • Falha ao acessar o diretório HOME
  • Erro ao baixar pacotes ou ao consultar a API do GitHub
  • Sistema operacional não suportado

Padronização do gerenciamento de pacotes por família:

  • Debian/Ubuntu → apt
  • Fedora/RHEL → dnf/yum
  • Arch → pacman
  • rpm-ostree → rpm-ostree install/remove

Exclusão automática de pacotes temporários após instalação.

Motivação
Ao executar o script anterior com sh (dash em Debian/Ubuntu), eram exibidos erros como:

Bad substitution
Syntax error: "(" unexpected (expecting "then")

Isso ocorria porque o script usava sintaxe exclusiva do Bash. Esta atualização garante compatibilidade real com /bin/sh, ampliando a portabilidade.

Agora o instalador pode ser executado de forma segura com:

sh install.sh
./install.sh

Testes:
✅ Debian 12 / Ubuntu 24.04 (apt)
✅ Fedora / RHEL (dnf)
✅ Arch Linux (pacman)
✅ Sistemas rpm-ostree (ex.: Fedora Silverblue)
✅ Fallback para curl caso wget não esteja disponível

@psygreg psygreg merged commit f33fafc into psygreg:master Aug 26, 2025
@arthuralvesdev
Copy link

Caraca, baita commit, parabéns!!!

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.

3 participants