Estendendo fpm com complementos

Estendendo fpm com complementos

O Gerenciador de Pacotes Fortran possui um sistema de plugins que permite estender sua funcionalidade. Este tutorial mostrará como instalar um plugin com fpm e usá-lo.

Ferramenta de busca de pacotes

O projeto fpm-search é um plugin que consulta o registro de pacotes. Dado que ele também é um pacote fpm podemos facilmente instalá-lo em nosso sistema usando

git clone https://github.com/urbanjost/fpm-search
cd fpm-search
fpm install --profile release

Isso instalará o binário do fpm-search no ~/.local/bin (ou em %APPDATA%\local\bin no Windows).

Nota

Se assegure de que o binário instalado está no PATH, Ex: rode

which fpm-search
~/.local/bin/fpm-search

Se nenhum binário foi encontrado, adicione o diretório ao seu PATH usando

Configurações padrão para o shell bash podem ser encontradas no arquivo .bashrc em sua pasta pessoal, para adicionar ao PATH siga as instruções abaixo.

echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.bashrc
. ~/.bashrc

Tenha certeza de usar o comando source em seu .bashrc após alterá-lo, caso contrário as mudanças não afetarão o shell atual.

Confirgurações padrões podem ser encontradas no arquivo .zshrc em sua pasta pessoal, para adicionar ao PATH use

echo 'export PATH=$PATH:$HOME/.local/bin' >> ~/.zshrc
exec zsh

Tenha certeza de reiniciar o zsh após mudar o .zshrc, caso contrário a mudança não afetará o shell atual.

A variável de ambiente PATH pode ser modificada usando o programa pathman a partir da linha de comando

pathman /au %APPDATA%\local\bin

Agora, com uma instalação funcional, podemos chamar nosso novo plugin a partir do fpm.

❯ fpm search
Downloading registry ... https://github.com/fortran-lang/fpm-registry/raw/master/index.json
...

Note que usamos fpm search em vez de fpm-search no comando. Agora, para encontrarmos um pacote que cria interfaces por linhas de comando podemos escrever

❯ fpm search commandline
M_CLI : Unix-style commandline parsing using a prototype command and NAMELIST (STD:f2008)
M_CLI2 : Unix-style commandline parsing using a prototype command

Para utilizar um dos pacotes no nosso manifesto podemos gerar a dependência necessária rodando

❯ fpm search --toml M_CLI2
M_CLI2 = { git = "https://github.com/urbanjost/M_CLI2" }

Adicionar esta linha ao manifesto do pacote permite depender do respectivo projeto.

Sumário

Neste tutorial você aprendeu como

  • instalar um complemento no fpm

  • usar o complemento fpm-search para consultar o registro

  • gerar uma dependência a partir do resultado de uma consulta