
Athena OS é uma distro baseada em Arch/Nix focada em Cibersegurança. Aprenda, pratique e divirta-se com qualquer ferramenta de hacking!

Os pacotes neste repositório são mantidos atualizados automaticamente por meio de um fluxo de trabalho diário do GitHub Actions alimentado pelo nvchecker.
A automação é executada todos os dias (e também pode ser acionada manualmente) e passa pelas seguintes etapas:
Geração de configuração — .nvchecker/generate-nvchecker-config.py examina cada PKGBUILD em src/ e gera automaticamente .nvchecker/nvchecker.toml. Cada pacote é classificado como um dos seguintes:
pkgver= estático e uma URL de origem remota. Rastreado pela tag/release mais recente na plataforma de hospedagem.pkgver() e uma origem git+https://. Rastreado pelo commit mais recente do upstream.Verificação de versão — o nvchecker consulta o upstream de cada pacote rastreado e grava os resultados em .nvchecker/newver.json. Isso é comparado com .nvchecker/oldver.json (commitado no repositório) para encontrar pacotes que têm uma nova versão disponível.
Atualização do PKGBUILD e PR — para cada pacote desatualizado, o fluxo de trabalho:
auto-update/<pkgname>-<newver>.pkgver e redefine pkgrel para 1 no PKGBUILD.updpkgsums.pkgver() localmente para calcular a string de versão real no estilo Arch (por exemplo, 131.940a5d3) e mantém sha512sums=('SKIP') como está.auto-update para revisão humana antes que qualquer coisa chegue à main.Salvamento de estado — .nvchecker/oldver.json é atualizado com as versões vistas nesta execução e commitado de volta na main, para que a próxima execução abra PRs apenas para mudanças genuinamente novas.
| Plataforma | Detecção |
|---|---|
| GitHub | github.com/<user>/<repo> |
| GitLab (gitlab.com + auto-hospedado) | gitlab.*/<user>/<repo> |
| Codeberg | codeberg.org/<user>/<repo> |
| Gitea (auto-hospedado) | gitea.*/<user>/<repo> |
| Sourcehut | git.sr.ht/~<user>/<repo> |
O gerador de configuração e o fluxo de trabalho de CI resolvem referências de variáveis de shell em linhas source= para que URLs indiretas como a seguinte sejam tratadas corretamente:
_pkgname=${pkgname#athena-}
source=("git+https://github.com/Athena-OS/$_pkgname.git")
As seguintes formas de expansão de parâmetros do bash são suportadas:
| Sintaxe | Significado | Exemplo |
|---|---|---|
$var / ${var} | Substituição simples | $pkgname → athena-settings |
${var#prefix} | Remove o prefixo correspondente mais curto | ${pkgname#athena-} → settings |
${var%suffix} | Remove o sufixo correspondente mais curto | ${pkgname%-git} → athena-settings |
As seguintes construções do bash não são resolvidas pela automação. PKGBUILDs que dependem delas serão ignorados de forma elegante com uma nota informativa — nenhum erro é gerado, e eles sempre podem ser atualizados manualmente.
| Sintaxe não suportada | Exemplo | Motivo |
|---|---|---|
Remoção de prefixo gulosa ## | ${var##*/} | Apenas # não guloso é implementado |
Remoção de sufixo gulosa %% | ${var%%.*} | Apenas % não guloso é implementado |
| Extração de substring | ${var:0:3} | Operador diferente, raro em PKGBUILDs |
| Substituição de padrão | ${var//foo/bar} | Operador diferente, raro em PKGBUILDs |
| Expansão aritmética | $((pkgver + 1)) | Fora do escopo do rastreamento de versão |
| Expansões aninhadas | ${${var}#prefix} | Não é POSIX válido; não é usado na prática |
Se o seu PKGBUILD usar qualquer uma das opções acima e a automação ignorá-lo, você pode reescrever a atribuição como uma linha simples var=value ou abrir um PR atualizando a versão manualmente.
LOL Omuamua