Executando verificação de segurança...
9

[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 ou help, os pacotes são automaticamente indexados para facilitar o acesso global.


Pacotes Disponíveis

  1. bpm-package: Pacote inicial de teste sem funcionalidades.
  2. colorful: Fornece códigos de cores para saída no terminal.
  3. metrics: Ferramenta CLI que calcula métricas de projetos, como número de linhas de código, commits, bytes, etc.
  4. edit-repo: CLI simples para manipular arquivos de repositórios do BPM.
  5. 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 ao package.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 pacote colorful para echo -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:

GitHub - Raffa064/bpm

Carregando publicação patrocinada...
2
0
2

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.

2
1

Para bash, não me lembro de ter outro gerenciador de dependências, embora o bash seja muito interligado com executáveis do sistema, e por consequência, dos gerenciadores de pacotes das distros.