NORG e o NH1

Era uma vez um conjunto de scripts utilitários em shell, escritos para automatizar e facilitar algumas tarefas diárias no trabalho. Ele se chamava 7redes e agrupava, como o nome sugere, funcionalidades úteis para lidar com redes. O nome 7redes veio da ideia de todas as suas funcionalidades começarem com 7, o que facilitaria seu uso.

Com o tempo, veio a ideia de tornar o 7redes um projeto público, separando o que eram informações internas do que era genérico. Também pensei, na ocasião, em uma organização diferenciada, que permitisse ao projeto ter camadas de interface diferentes. Assim nasciam o NH1 e o NORG.

Basicamente, NORG seria o projeto geral, o conceito. A princípio seria um servidor de onde o NH1 poderia buscar informações via webservice, mas isso está para ser revisto. Dentro do NORG, haveria o NH1 como núcleo. Camadas construídas acima do NH1 seriam o NH2, NH3… A proposta atual é a seguinte:

  • NH1: scripts shell em Bash, feitos para serem chamados e retornarem valores, sem interação.
  • NH2: interface gráfica. Estou iniciando testes em Vala+GTK. A interface facilitará o uso de algumas funcionalidades, mas ainda chamará o NH1 por baixo dos panos.
  • NH3: similar ao NH2, mas a interface neste caso será web. Ainda estou dividido entre usar um framework clássico PHP (fácil de hospedar) ou partir pra um mais vanguardista em Node.

NH1 chegando na versão 1.0

Após várias implementações e ajustes, o NH1 está na versão 1.0 RC. Significa que oferece já várias funcionalidades, minimamente testadas. Algumas funcionalidades interessantes:

  • 1app: conjunto de funcionalidades para instalar, atualizar e desinstalar aplicativos disponibilizados em formato AppImage. Usando receitas modulares, o 1app baixa os programas diretamente do site do desenvolvedor de cada aplicativo. Suportados até o momento: Cherry Tree, Inkscape, KeepassXC, LibreWolf, OnlyOffice, VSCodium, entre outros. Há dois ambientes possíveis para a instalação: o local e o global.
  • 1backup: faz backup de um diretório usando o compressor que houver disponível.
  • 1canva: através de uma marcação simples para variável -=[nome]=- dentro de um SVG, o 1canva gera imagens aplicando valores às variáveis presentes. Isso facilita a criação de banners, recibos e outras imagens onde pouca coisa precisa ser modificada.
  • 1booklet: gera a sequência de páginas para a impressão de um livreto, organizando tudo direitinho para você só grampear no meio depois de imprimir. O 1pdfbkl vai além e gera um PDF já pronto para impressão.
  • 1timer: temporizador simples. Usando o 1timer, o NH1 oferece o 1pomo (Pomodoro) e o 1rr30 (auxiliar na aplicação da técnica 30-30-30 de resetar roteadores domésticos).
  • 1host: utiliza arquivos relacionando nomes a IPs, como um DNS interno. Retorna um endereço de IP válido para achar o host pretendido a partir da rede onde você está. Útil quando temos servidores e desktops em várias VLANs diferentes. O 1ison e o 1areon servem para testar se as máquinas respondem a ping comum.
  • 1ssh: tenta conectar por SSH usando vários algoritmos (alguns switchs não funcionam para os algoritmos default).
  • 1roll: rolador de dados para RPG, aceitando fórmulas simples, tipo 2d10, 3d6, 1d20-2…
  • 1draw: ferramenta para gerenciar e usar grupos de sorteio. Listagens de onde se tira um elemento eventualmente. Parece quase inútil, mas é uma ferramenta muito importante para facilitar a criação de um gerador de personagens aleatórios.

Há várias outras funcionalidades e umas ideias legais para versões futuras também!

Instalando o NH1

Para usar o NH1, você precisa do interpretador de comandos Bash. ele é o padrão para a maioria das distribuições GNU/Linux. Você tem duas formas de instalar o NH1:

  1. Baixando o arquivo .tar.gz mais recente na página de releases do projeto. A versão 1.0 RC ainda não está lá quando escrevo este post, mas deve estar ainda na semana de sua publicação (do post).
  2. Usando o git com o comando git clone https://github.com/carlisson/nh1. Uma vantagem deste modo é que você pode ter o NH1 sempre atualizado, bastando rodar o comando 1update.

Atualização: Faltou dizer que o NH1 funciona carregado no shell durante o seu uso do terminal. Tem autocompletar e suporte a tradução, disponível em Inglês e Português. E é customizável (use o comando 1info para ver que variáveis podem ser modificadas e onde colocar o arquivo de configuração).

Comment

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *