
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 por 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 varre 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 última tag/lançamento na plataforma de hospedagem.pkgver() e uma fonte git+https://. Rastreado pelo commit mais recente do upstream.Verificação de versão — nvchecker consulta o upstream de cada pacote rastreado e escreve 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.
— para cada pacote desatualizado, o fluxo de trabalho:
O gerador de configuração e o fluxo de trabalho de CI ambos 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 bash são suportadas:
As seguintes construções bash não são resolvidas pela automação. PKGBUILDs que dependem delas serão ignorados graciosamente com uma nota informativa — nenhum erro é gerado, e eles sempre podem ser atualizados manualmente.
Se seu PKGBUILD usar alguma das construçõ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.
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 (ex.: 131.940a5d3), e mantém sha512sums=('SKIP') como está.auto-update para revisão humana antes de qualquer alteração chegar ao main.Salvamento de estado — .nvchecker/oldver.json é atualizado com as versões vistas nesta execução e commitado de volta ao 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> |
| Sintaxe | Significado | Exemplo |
|---|
$var / ${var} | Substituição simples | $pkgname → athena-settings |
${var#prefix} | Remover o prefixo correspondente mais curto | ${pkgname#athena-} → settings |
${var%suffix} | Remover o sufixo correspondente mais curto | ${pkgname%-git} → athena-settings |
| Sintaxe não suportada | Exemplo | Motivo |
|---|
## ganancioso remover prefixo | ${var##*/} | Apenas # não ganancioso é implementado |
%% ganancioso remover sufixo | ${var%%.*} | Apenas % não ganancioso é 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 para rastreamento de versão |
| Expansões aninhadas | ${${var}#prefix} | Não é POSIX válido; não usado na prática |