[pitch] Fiz meu próprio gerenciador de pacotes
Bash Package Manager (BPM)
O BPM é um gerenciador de pacotes projetado especificamente para scripts em Bash, oferecendo uma forma prática de automatizar tarefas no Linux. Abaixo, você encontrará informações detalhadas sobre suas funcionalidades, pacotes existentes e como utilizá-lo.
Principais Funcionalidades
- Instalação de pacotes remotos: Adicione pacotes de repositórios externos.
- Gerenciamento de pacotes: Criação, remoção e restauração de pacotes.
- Listagem de repositórios e pacotes: Verifique quais repositórios estão ativos e explore os pacotes disponíveis.
- Indexação automática de pacotes: Garante que pacotes sejam acessíveis globalmente.
- Exportação de pacotes como CLI: Permite rodar pacotes diretamente no terminal.
- Sistema de importação próprio: Facilita o uso de pacotes como bibliotecas.
- Bash completion automático: Completa comandos diretamente no terminal.
- Comando de reparo automático: Corrige problemas na instalação ou execução.
Nota sobre a indexação automática: Sempre que você usa qualquer comando do BPM em um diretório de pacote, como
install
,clean
ouhelp
, os pacotes são automaticamente indexados para facilitar o acesso global.
Pacotes Disponíveis
- bpm-package: Pacote inicial de teste sem funcionalidades.
- colorful: Fornece códigos de cores para saída no terminal.
- metrics: Ferramenta CLI que calcula métricas de projetos, como número de linhas de código, commits, bytes, etc.
- edit-repo: CLI simples para manipular arquivos de repositórios do BPM.
- pack: Facilita a manipulação de pacotes e gerenciadores de pacotes. Inclui a função
pack-man
, que adapta scripts para diferentes gerenciadores do sistema.
Esses pacotes foram criados principalmente para testar o BPM, mas possuem utilidades práticas.
Workflow do BPM
Instalação
Clone o repositório e execute o script de instalação:
git clone https://github.com/Raffa064/bpm && bash ./install.sh
Após a instalação, reinicie o shell para ativar o BPM. Use o comando bpm
e pressione Tab para visualizar os comandos disponíveis.
Gerenciamento de Pacotes
Instalar um pacote
Para instalar um pacote, como o metrics
:
bpm install metrics
Isso também instalará as dependências (ex.: colorful
).
Executar um pacote
Para rodar um pacote instalado:
bpm run metrics
Você pode exportar o pacote para executá-lo diretamente:
bpm export metrics
metrics -t sh
Criar um Pacote
Para criar um novo pacote:
bpm init my-bpm-package
O comando pedirá algumas informações, incluindo o main script, que é o caminho do arquivo principal do pacote (similar ao import
em Java). Caso o pacote seja apenas uma biblioteca, deixe este campo vazio.
Após a criação, o diretório do pacote terá:
src/
: Para os scripts.package.sh
: Arquivo de configuração (similar aopackage.json
do Node.js).
Adicionar dependências
Adicione dependências no arquivo package.sh
:
pkg[dependencies]="colorful"
Importar dependências
Use o comando import
nos scripts:
Exemplo: src/my-bpm-package.sh
import colorful
function my-bpm-package/main() {
echoe "$fBTexto azul" # foreground blue
echoe "$fgTexto verde" # foreground green
}
Nota: O comando
echoe
é um atalho do pacotecolorful
paraecho -e
, com reset automático de cores ao final.
Execute o pacote com:
bpm run my-bpm-package
Remover e Restaurar Pacotes
- Remover: Adicione o pacote à lixeira com
bpm remove
. - Restaurar: Restaure o pacote com
bpm restore
. - Limpar: Esvazie a lixeira com
bpm clean
.
Documentação
A documentação completa dos comandos está disponível com:
bpm help
Ela está escrita em inglês e cobre todos os recursos do BPM.
Teste o BPM
Confira o repositório oficial e experimente o projeto:
Bacana o projeto. O bash é muito simplista realmente, acho que nunca pensaram em criar um package manager para ele antes.
Legal. Pelo que eu me lembro, nunca tinha visto um gerenciador de pacotes para scripts em bash. É útil para centralizar e facilitar que as pessoas encontrem scripts para suprir as necessidades.
Parabéns.
Seria o mesmo que refazer a roda, mas, interessante para aprendizado.