FPM mit Plugins erweitern

FPM mit Plugins erweitern

Der Fortran-Paketmanager verfügt über ein Plugin-System, mit dem sich seine Funktionalität leicht erweitern lässt. In diesem Tutorial wird gezeigt, wie man ein Plugin mit fpm installiert und verwendet.

Registry-Suchtool

Das fpm-search Projekt ist ein Plugin zur Abfrage der Paketregistrierung. Da es mit fpm erstellt wurde, können wir es einfach auf unserem System installieren mit

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

Dadurch wird die Binärdatei fpm-search nach ~/.local/bin (oder %APPDATA%\local\bin unter Windows) installiert.

Bemerkung

Stellen Sie sicher, dass die installierte Binärdatei im PATH ist, bzw. benutze

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

Wenn keine Binärdatei gefunden wird, füge das Verzeichnis zum Pfad hinzu mit

Die Standardeinstellungen für die Bash-Shell finden sich in der Datei .bashrc im Home-Verzeichnis, um zum PATH anhängen folge den Schritten unten.

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

Stelle sicher, dass die .bashrc nach dem Ändern als Quelle verwendet wird, da die Änderung sonst nicht auf die aktuelle Shell angewendet wird.

Die Standardeinstellungen für die Zsh-Shell finden sich in der Datei .zshrc im Home-Verzeichnis, um zum PATH anhängen folge den Schritten unten

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

Stelle sicher, dass die zsh neugestartet nachdem .zshrc geändert wurde, da die Änderung sonst nicht auf die aktuelle Shell angewendet wird.

Die Variable PATH kann mit dem pathman-Programm über die cmd-Eingabeaufforderung geändert werden

pathman /au %APPDATA%\local\bin

Jetzt mit einer funktionierenden Installation können wir unser neues Plugin von fpm aufrufen.

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

Nun können wir fpm search statt fpm-search als Befehl verwenden. Um ein Paket für die Erstellung einer Befehlszeilenschnittstelle zu finden, können wir nun Folgendes eingeben

❯ 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

Um eines der Pakete in unserem Manifest zu verwenden, können wir die notwendige Abhängigkeitszeile erzeugen, indem wir

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

Das Hinzufügen dieser Zeile zu einem Paketmanifest ermöglicht die Abhängigkeit von dem jeweiligen Projekt.

Zusammenfassung

In diesem Kurs haben wir gelernt, wie man

  • Installieren eines fpm-Plugins

  • Verwendung des fpm-search-Plugins zur Abfrage der Registrierung

  • einen Abhängigkeitseintrag aus einem Abfrageergebnis erzeugen