Entwicklung - Hinweise für Plugin Entwickler
Aus VDR Wiki
Inhaltsverzeichnis |
Beschreibung
Plugins packen
Sinngemäß entsprechend ../VDR/PLUGINS.html:
Erstellen eines Plugin-Pakets
Wenn man als Entwickler sein Plugin anderen VDR-Nutzern verfügbar machen möchte, muss man ein Quellcode-Paket erstellen. Das Makefile welches beim Aufruf von newplugin erstellt wurde verfügt über das make Ziel dist, welches diese Funktion übernimmt.
In das Plugin Verzeichnis wechseln und make dist ausführen, hier am Beispiel von hello:
cd VDR/PLUGINS/src/hello make dist
Anschließend sollte ein neu erstelltes Quellcode-Tarball
vdr-hello-0.0.1.tgz
im Quellcodeverzeichnis erstellt worden sein, wobei hello durch den aktuellen Plugin-Namen ersetzt wird und 0.0.1 durch die Versionsnummer des Plugins.
Übersetzungen / Internationalization
- Französisch
Wünschenswert
Wie in der Struktur zu sehen ist, wird das $VDRCONFIG/plugins Verzeichnis mit der Anzahl der Plugins unübersichtlich.
Wäre schön, wenn wie bei einigen Plugins schon geschehen, der Ort für Konfigurationsdateien mit einem neuen Verzeichnis eine Ebene tiefer gesetzt wird.
- VDRCONFIG/plugins + VDRCONFIG/plugins/<PLUGIN>
Oder zwecks abwärtskompatibilität, eine entsprechende Option bereit zu stellen. (siehe image-plugin / loadepg-plugin)
-c <PATH> --config=<PATH>
PATH ist relativ zum VDR Plugin Konfigurationsverzeichnis, Bsp.
-c test
Entspricht.
$VDRCONFIG/plugins/test
So wäre in Zukunft sicher gestellt, das Konfigurations-Dateien nicht mit einander kollidieren.
Zum anderen dient es sicher der Übersichtlichkeit.
Intelligenz einiger Plugins
Warum steigen einige Plugins aus, mit der message "configfile not found...", könnte man nicht ein wenig Intelligenz von einem Plugin erwarten?
Z.B., wenn eine Konfigurations-Datei nicht vorhanden ist, das diese dann vom Plugin am passenden Ort erstellt wird?
Glaube im eggtimer-plugin solch eine Routine gesehen zu haben.
Debugging
Viele nutzen.
DEBUG = 1
In den Makefiles, Problem.
make DEBUG=1 all plugins
Und alles würde mit Debug übersetzt, obwohl man explizit nur ein Plugin in diesen Modus haben möchte.
Das femon-plugin macht es richtig. (<NAME DES PLUGINS>_DEBUG)
FEMON_DEBUG = 1
Wäre nicht schlecht, wenn das die anderen Plugins ebenso halten könnten.