![[MAC0470#08] - Nu scripts pt. 3](/nuscripts.jpg)
[MAC0470#08] - Nu scripts pt. 3
ASDF
mac0470
Na terceira parte da nossa jornada, pensei em criar completions para uma outra ferramenta de terminal que eu uso bastante: asdf. asdf
é um gerenciador de versões de ferramentas, em especial, usado para ferramentas relacionadas a linguagens de programação.
Comecei seguindo meu fluxo padrão de criação de completions escrevendo um arquivo .nu
e fazendo source
ocasionalmente para testar. Porém, não havia reparado em um detalhe: o asdf já é um script nu
. Portanto, criar nu completions de forma externa iria sobrescrever as definições originais do script.
Isso não necessariamente faz com que o asdf
não funcione, porém, o asdf já possui uma integração com nushell, pois alguns comandos retornam seus resultados como tables do nushell e não simples strings.
Ou seja, minhas modificações deveriam ser feitas diretamente no script asdf.nu
. Logo, era hora de criar um fork do projeto asdf
.
Minhas Contribuições
Como dito anteriormente, asdf
é usado para gerenciar versões de ferramentas. Ao executar o comando asdf plugin add <tool>
instalamos um plugin para gerenciar <tool>
. Então, criei completions para listar todos os plugins que estão catalogados pelo asdf
(no momento são cerca de 700 plugins, infelizmente a completion é relativamente lenta).
O comando asdf install <tool> <version>
instala a versão <version>
para a ferramenta <tool>
, portanto adicionei completions para ambos argumentos (na verdade a completion para <tool>
já existia, apenas utilizei ela para listar os plugins instalados).
Por fim, o comando asdf global|local <tool> <version>
que define a versão da ferramenta <tool>
no escopo global ou local. Assim, adicionei uma completion para listar as versões instaladas da ferramenta.
O Pull Request
Infelizmente não havia me atentado ao detalhe que nenhum commit era feito no repositório do projeto há 5 meses. Fiz o PR e alguma pessoa (não relacionada ao projeto) comentou um “Ok”. Desde então não tive mais nenhum feedback.