Metainformationen zur Seite
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:start [2022/09/21 21:40] – Michael Schlenstedt | entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:start [2024/04/22 09:26] (aktuell) – [Unterverzeichnis: dpkg OPTIONAL] Michael Schlenstedt | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Plugin für den Loxberry entwickeln | + | ====== Plugin für den Loxberry entwickeln ====== |
<do Prof.Mobilux> | <do Prof.Mobilux> | ||
- | <do Prof.Mobilux> | ||
- | <do Prof.Mobilux> | ||
- | |||
- | <WRAP center round tip 100%> | ||
- | == Plugin-Interface V2 == | ||
- | |||
- | Diese Beschreibung erklärt die Erstellung eines Plugins mit dem **Plugin-Interface V2**, welches erst ab //LoxBerry V1.x// zur Verfügung steht. Plugins mit **Plugin-Interface V2** sind //nicht// kompatibel mit //LoxBerry V0.2.x//. | ||
- | </ | ||
Der LoxBerry kann über Plugins erweitert werden. Plugins bestehen aus einer Reihe von Dateien in einem Standard-ZIP-Archiv, | Der LoxBerry kann über Plugins erweitert werden. Plugins bestehen aus einer Reihe von Dateien in einem Standard-ZIP-Archiv, | ||
Zeile 15: | Zeile 7: | ||
Der folgende Artikel beschreibt den Aufbau eines Plugin-Archivs und beschreibt, wie ein Plugin für den LoxBerry entwickelt werden kann, sodass es sich in die Struktur des LoxBerry nahtlos einfügt. Um die einzelnen Schritte des Artikels nachvollziehen zu können solltest Du Dir die sogenannten " | Der folgende Artikel beschreibt den Aufbau eines Plugin-Archivs und beschreibt, wie ein Plugin für den LoxBerry entwickelt werden kann, sodass es sich in die Struktur des LoxBerry nahtlos einfügt. Um die einzelnen Schritte des Artikels nachvollziehen zu können solltest Du Dir die sogenannten " | ||
- | * PERL: | + | * PERL: [[https:// |
- | * PHP: | + | * PHP: [[https:// |
== Benutzung des Plugin Generators == | == Benutzung des Plugin Generators == | ||
Zeile 45: | Zeile 37: | ||
Alle Dateien des Plugins können im Root-Verzeichnis des ZIP-Archivs oder in einem Unterverzeichnis mit beliebigen Namen liegen. Obwohl es mit Leerzeichen oder Sonderzeichen keine Probleme geben sollte, verwende bitte für das Unterverzeichnis nur ASCII-Zeichen ohne Leerzeichen. Es ist nicht möglich mehr als ein Untervezeichnis zu verwenden. Die ZIP-Datei darf nicht verschlüsselt oder Passwort-geschützt sein. Wenn Du den Sourcecode Deines Plugins auf GitHub verwaltest, kannst Du direkt aus GitHub heraus eine ZIP-Datei Deines Plugins herunterladen [[entwickler: | Alle Dateien des Plugins können im Root-Verzeichnis des ZIP-Archivs oder in einem Unterverzeichnis mit beliebigen Namen liegen. Obwohl es mit Leerzeichen oder Sonderzeichen keine Probleme geben sollte, verwende bitte für das Unterverzeichnis nur ASCII-Zeichen ohne Leerzeichen. Es ist nicht möglich mehr als ein Untervezeichnis zu verwenden. Die ZIP-Datei darf nicht verschlüsselt oder Passwort-geschützt sein. Wenn Du den Sourcecode Deines Plugins auf GitHub verwaltest, kannst Du direkt aus GitHub heraus eine ZIP-Datei Deines Plugins herunterladen [[entwickler: | ||
- | {{entwickler: | + | {{entwickler: |
Die Dateien und Verzeichnisse des ZIP-Archivs werden bei der Installation der Reihe nach abgearbeitet. Der Ablauf der Installation ist in der folgenden Auflistung dargestellt. Details zu jedem Schritt bzw. jeder Datei beschreiben die folgenden Kapitel. | Die Dateien und Verzeichnisse des ZIP-Archivs werden bei der Installation der Reihe nach abgearbeitet. Der Ablauf der Installation ist in der folgenden Auflistung dargestellt. Details zu jedem Schritt bzw. jeder Datei beschreiben die folgenden Kapitel. | ||
Zeile 67: | Zeile 59: | ||
- Installation der Datei " | - Installation der Datei " | ||
- Installation zusätzlicher Pakete aus dem Distributions-Repository mit apt-get aus der Datei dpkg/apt | - Installation zusätzlicher Pakete aus dem Distributions-Repository mit apt-get aus der Datei dpkg/apt | ||
- | - Nur Raspberry-Architektur: | + | - Installation zusätzlicher mitgelieferter DEB-Pakete aus dem Verzeichnis dpkg/< |
- | - Nur X86-Architektur: | + | |
- | - Nur X64-Architektur: | + | |
- Ausführen der Datei " | - Ausführen der Datei " | ||
- Nur bei Update: Ausführen der Datei " | - Nur bei Update: Ausführen der Datei " | ||
Zeile 91: | Zeile 81: | ||
</ | </ | ||
- | | |Key |Value | + | | |
- | |1|NAME |Legt den Namen des Autors oder der Projektgruppe fest.| | + | | 1 | NAME | Legt den Namen des Autors oder der Projektgruppe fest. | |
- | |2|EMAIL|Email-Adresse des Autors oder der Projektgruppe | + | | 2 | EMAIL | Email-Adresse des Autors oder der Projektgruppe |
<WRAP center round tip 100%> | <WRAP center round tip 100%> | ||
+ | |||
== Wichtiger Hinweis! == | == Wichtiger Hinweis! == | ||
Die beiden Variablen NAME und EMAIL werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden. | Die beiden Variablen NAME und EMAIL werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden. | ||
+ | |||
</ | </ | ||
Zeile 130: | Zeile 121: | ||
</ | </ | ||
- | | |Key |Value | + | | |
- | |1|VERSION|Version des Plugins. Kann verwendet werden um spezielle Aktionen bei einem Update auszuführen (siehe unten). Wird zudem in der Plugin-Verwatung des LoxBerry angezeigt.\\ \\ Die Version muss eine [[entwickler: | + | | 1 | VERSION | Version des Plugins. Kann verwendet werden um spezielle Aktionen bei einem Update auszuführen (siehe unten). Wird zudem in der Plugin-Verwatung des LoxBerry angezeigt.\\ \\ Die Version muss eine [[entwickler: |
- | |2|NAME | + | | 2 | NAME | Kurzer Plugin-Name. Keine Leerzeichen, |
- | |3|FOLDER |Verzeichnis-Name. Keine Leerzeichen, | + | | 3 | FOLDER | Verzeichnis-Name. Keine Leerzeichen, |
- | |4|TITLE | + | | 4 | TITLE | (Langer) Name des Plugins. Dieser wird in der Plugin-Verwaltung des LoxBerry angezeigt und wird auch in den LoxBerry-Menüs verwendet. Hier können Sonderzeichen, |
<WRAP center round tip 100%> | <WRAP center round tip 100%> | ||
+ | |||
== Wichtiger Hinweis! == | == Wichtiger Hinweis! == | ||
Die beiden Variablen NAME und FOLDER werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden. | Die beiden Variablen NAME und FOLDER werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden. | ||
+ | |||
</ | </ | ||
- | |||
- | **2. Block: PLUGIN** | ||
- | |||
- | <code syntaxhighlighter-pre> | ||
- | [AUTOUPDATE] | ||
- | # If your plugin offers automatic updates, please enable the following option. | ||
- | # Details here: http:// | ||
- | AUTOMATIC_UPDATES=true | ||
- | |||
- | # This is the URL to your release.cfg file. This file will be checked for | ||
- | # new releases if the user eneables autoupdates. If the version number | ||
- | # given in the release.cfg file is newer than the installed one, the | ||
- | # plugin archive will be downloaded from the URL given in the release.cfg file | ||
- | # and will be installed automatically | ||
- | RELEASECFG=https:// | ||
- | |||
- | # This is the URL to your prerelease.cfg file. This file will be checked for | ||
- | # new prereleases if the user enables autoupdates for prereleases. If the | ||
- | # version number given in the release.cfg file is newer than the installed | ||
- | # one, the plugin archive will be downloaded from the URL given in the | ||
- | # release.cfg file and will be installed automatically | ||
- | PRERELEASECFG=https:// | ||
- | </ | ||
- | |||
- | | |Key |Value | ||
- | |1|AUTOMATIC_UPDATES|Legt fest, ob das Plugin die AutoUpdate-Funktion zur Verfügung stellt oder nicht. Details hier: [[entwickler: | ||
- | |2|RELEASECFG | ||
- | |3|PRERELEASECFG | ||
**3. Block: SYSTEM** | **3. Block: SYSTEM** | ||
Zeile 191: | Zeile 156: | ||
# plugin do not use any special features of an architecture. | # plugin do not use any special features of an architecture. | ||
# PUT in QUOTES "" | # PUT in QUOTES "" | ||
- | # Please check http:// | + | ARCHITECTURE=" |
- | # architectures and strings you should use here. | + | |
- | ARCHITECTURE=" | + | |
# If you are using the LoxBerry:: | # If you are using the LoxBerry:: | ||
Zeile 204: | Zeile 167: | ||
</ | </ | ||
- | | |Key | + | | |
- | |1|REBOOT | + | | 1 | REBOOT |
- | |2|LB_MINIMUM | + | | 2 | LB_MINIMUM |
- | |3|LB_MAXIMUM | + | | 3 | LB_MAXIMUM |
- | |4|ARCHITECTURE | + | | 4 | ARCHITECTURE |
- | |5|CUSTOM_LOGLEVELS|Wenn true, wird im Plugin Management Widget dem User eine Auswahl an verschiedenen Loglevels angezeigt. Kann in Verbindung mit den LoxBerry Libraries LoxBerry:: | + | | 5 | CUSTOM_LOGLEVELS | Wenn true, wird im Plugin Management Widget dem User eine Auswahl an verschiedenen Loglevels angezeigt. Kann in Verbindung mit den LoxBerry Libraries LoxBerry:: |
- | |6|INTERFACE | + | | 6 | INTERFACE |
+ | |||
+ | **4. Block: AUTOUPDATE** | ||
+ | |||
+ | <code syntaxhighlighter-pre> | ||
+ | [AUTOUPDATE] | ||
+ | # If your plugin offers automatic updates, please enable the following option. | ||
+ | # Details here: http:// | ||
+ | AUTOMATIC_UPDATES=true | ||
+ | |||
+ | # This is the URL to your release.cfg file. This file will be checked for | ||
+ | # new releases if the user eneables autoupdates. If the version number | ||
+ | # given in the release.cfg file is newer than the installed one, the | ||
+ | # plugin archive will be downloaded from the URL given in the release.cfg file | ||
+ | # and will be installed automatically | ||
+ | RELEASECFG=https:// | ||
+ | |||
+ | # This is the URL to your prerelease.cfg file. This file will be checked for | ||
+ | # new prereleases if the user enables autoupdates for prereleases. If the | ||
+ | # version number given in the release.cfg file is newer than the installed | ||
+ | # one, the plugin archive will be downloaded from the URL given in the | ||
+ | # release.cfg file and will be installed automatically | ||
+ | PRERELEASECFG=https:// | ||
+ | </ | ||
+ | |||
+ | | | Key | Value | | | ||
+ | | 1 | AUTOMATIC_UPDATES | Legt fest, ob das Plugin die AutoUpdate-Funktion zur Verfügung stellt oder nicht. Details hier: [[entwickler: | ||
+ | | 2 | RELEASECFG | ||
+ | | 3 | PRERELEASECFG | ||
====== Rootverzeichnis - Datei: | ====== Rootverzeichnis - Datei: | ||
- | Bei der Datei // | + | Bei der Datei // |
Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | ||
- | |Nr.|Inhalt | + | | Nr. | Inhalt |
- | |1 |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' | + | | 1 | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' |
- | |2 |Tatsächlich verwendeter Plugin-Name (siehe [[https:// | + | | 2 | Tatsächlich verwendeter Plugin-Name (siehe [[https:// |
- | |3 |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// | + | | 3 | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// |
- | |4 |Plugin-Version (siehe [[https:// | + | | 4 | Plugin-Version (siehe [[https:// |
- | |5 |LoxBerry Basis-Ordner (normalerweise '' | + | | 5 | LoxBerry Basis-Ordner (normalerweise '' |
- | |6 |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) |'' | + | | 6 | Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) | '' |
Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | ||
Zeile 232: | Zeile 223: | ||
==== Plugin-Pfade ==== | ==== Plugin-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
==== System-Pfade ==== | ==== System-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | ||
Zeile 260: | Zeile 250: | ||
Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | ||
- | |Logfile Tags|Hervorhebung | + | | Logfile Tags | Hervorhebung |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
Das Skript muss mit einem Exit-Status von " | Das Skript muss mit einem Exit-Status von " | ||
Zeile 339: | Zeile 329: | ||
====== Rootverzeichnis - Datei: | ====== Rootverzeichnis - Datei: | ||
- | Bei der Datei // | + | Bei der Datei // |
Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | ||
- | |Nr.|Inhalt | + | | Nr. | Inhalt |
- | |1 |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' | + | | 1 | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' |
- | |2 |Tatsächlich verwendeter Plugin-Name (siehe [[https:// | + | | 2 | Tatsächlich verwendeter Plugin-Name (siehe [[https:// |
- | |3 |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// | + | | 3 | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// |
- | |4 |Plugin-Version (siehe [[https:// | + | | 4 | Plugin-Version (siehe [[https:// |
- | |5 |LoxBerry Basis-Ordner (normalerweise '' | + | | 5 | LoxBerry Basis-Ordner (normalerweise '' |
- | |6 |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) |'' | + | | 6 | Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) | '' |
Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | ||
Zeile 357: | Zeile 347: | ||
==== Plugin-Pfade ==== | ==== Plugin-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
==== System-Pfade ==== | ==== System-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | ||
- | Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | + | Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' |
- | + | ||
- | |Logfile Tags|Hervorhebung | + | | Logfile Tags | Hervorhebung |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
Das Skript muss mit einem Exit-Status von " | Das Skript muss mit einem Exit-Status von " | ||
Zeile 463: | Zeile 453: | ||
====== Rootverzeichnis - Datei: | ====== Rootverzeichnis - Datei: | ||
- | Bei der Datei // | + | Bei der Datei // |
Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | ||
- | |Nr.|Inhalt | + | | Nr. | Inhalt |
- | |1 |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' | + | | 1 | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' |
- | |2 |Tatsächlich verwendeter Plugin-Name (siehe [[https:// | + | | 2 | Tatsächlich verwendeter Plugin-Name (siehe [[https:// |
- | |3 |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// | + | | 3 | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// |
- | |4 |Plugin-Version (siehe [[https:// | + | | 4 | Plugin-Version (siehe [[https:// |
- | |5 |LoxBerry Basis-Ordner (normalerweise '' | + | | 5 | LoxBerry Basis-Ordner (normalerweise '' |
- | |6 |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) |'' | + | | 6 | Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) | '' |
Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | ||
Zeile 482: | Zeile 471: | ||
==== Plugin-Pfade ==== | ==== Plugin-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
==== System-Pfade ==== | ==== System-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | ||
Zeile 510: | Zeile 498: | ||
Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | ||
- | |Logfile Tags|Hervorhebung | + | | Logfile Tags | Hervorhebung |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
Das Skript muss mit einem Exit-Status von " | Das Skript muss mit einem Exit-Status von " | ||
Zeile 585: | Zeile 572: | ||
exit 0 | exit 0 | ||
</ | </ | ||
- | |||
====== Rootverzeichnis - Datei: | ====== Rootverzeichnis - Datei: | ||
- | Bei der Datei // | + | Bei der Datei // |
Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | ||
- | |Nr.|Inhalt | + | | Nr. | Inhalt |
- | |1 |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' | + | | 1 | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' |
- | |2 |Tatsächlich verwendeter Plugin-Name (siehe [[https:// | + | | 2 | Tatsächlich verwendeter Plugin-Name (siehe [[https:// |
- | |3 |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// | + | | 3 | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// |
- | |4 |Plugin-Version (siehe [[https:// | + | | 4 | Plugin-Version (siehe [[https:// |
- | |5 |LoxBerry Basis-Ordner (normalerweise '' | + | | 5 | LoxBerry Basis-Ordner (normalerweise '' |
- | |6 |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) |'' | + | | 6 | Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) | '' |
Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | ||
Zeile 607: | Zeile 593: | ||
==== Plugin-Pfade ==== | ==== Plugin-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
==== System-Pfade ==== | ==== System-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | ||
Zeile 634: | Zeile 620: | ||
Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | ||
- | |Logfile Tags|Hervorhebung | + | | Logfile Tags | Hervorhebung |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
Das Skript muss mit einem Exit-Status von " | Das Skript muss mit einem Exit-Status von " | ||
Zeile 712: | Zeile 698: | ||
====== Rootverzeichnis - Datei: | ====== Rootverzeichnis - Datei: | ||
- | Bei der Datei // | + | Bei der Datei // |
Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | ||
- | |Nr.|Inhalt | + | | Nr. | Inhalt |
- | |1 |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' | + | | 1 | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' |
- | |2 |Tatsächlich verwendeter Plugin-Name (siehe [[https:// | + | | 2 | Tatsächlich verwendeter Plugin-Name (siehe [[https:// |
- | |3 |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// | + | | 3 | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// |
- | |4 |Plugin-Version (siehe [[https:// | + | | 4 | Plugin-Version (siehe [[https:// |
- | |5 |LoxBerry Basis-Ordner (normalerweise '' | + | | 5 | LoxBerry Basis-Ordner (normalerweise '' |
- | |6 |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) |'' | + | | 6 | Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv (sicherere Alternative zu $1) | '' |
Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | ||
Zeile 730: | Zeile 716: | ||
==== Plugin-Pfade ==== | ==== Plugin-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
==== System-Pfade ==== | ==== System-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | ||
Zeile 759: | Zeile 743: | ||
Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | ||
- | |Logfile Tags|Hervorhebung | + | | Logfile Tags | Hervorhebung |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
Das Skript muss mit einem Exit-Status von " | Das Skript muss mit einem Exit-Status von " | ||
Zeile 839: | Zeile 822: | ||
====== Rootverzeichnis - Datei: | ====== Rootverzeichnis - Datei: | ||
- | Bei der Datei // | + | Bei der Datei // |
Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | Dem Skript werden auf der Kommandozeile folgende Parameter übergeben, die innerhalb des Bashskripts verwendet werden können: | ||
- | |Nr.|Inhalt | + | | Nr. | Inhalt |
- | |1 |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' | + | | 1 | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde ('' |
- | |2 |Tatsächlich verwendeter Plugin-Name (siehe [[https:// | + | | 2 | Tatsächlich verwendeter Plugin-Name (siehe [[https:// |
- | |3 |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// | + | | 3 | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// |
- | |4 |Plugin-Version (siehe [[https:// | + | | 4 | Plugin-Version (siehe [[https:// |
- | |5 |LoxBerry Basis-Ordner (normalerweise '' | + | | 5 | LoxBerry Basis-Ordner (normalerweise '' |
- | |6 |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv | + | | 6 | Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv |
Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: | ||
Zeile 857: | Zeile 840: | ||
==== Plugin-Pfade ==== | ==== Plugin-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
==== System-Pfade ==== | ==== System-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: | ||
Zeile 885: | Zeile 867: | ||
Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "'' | ||
- | |Logfile Tags|Hervorhebung | + | | Logfile Tags | Hervorhebung |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
- | |< | + | | < |
Das Skript muss mit einem Exit-Status von " | Das Skript muss mit einem Exit-Status von " | ||
Zeile 986: | Zeile 967: | ||
Die Dateien aus diesem Verzeichnis werden im System als Cronjob installiert. Es muss sich dabei jeweils um ein Shell-Skript oder um ein Skript mit korrektem Shebang handeln. Es muss sich um ASCII-Dateien im Unix-Dateiformat (Zeilenende: | Die Dateien aus diesem Verzeichnis werden im System als Cronjob installiert. Es muss sich dabei jeweils um ein Shell-Skript oder um ein Skript mit korrektem Shebang handeln. Es muss sich um ASCII-Dateien im Unix-Dateiformat (Zeilenende: | ||
- | Des weiteren kann eine crontab-Datei im Verzeichnis hinterlegt werden, um volle Flexibilität bei der Generierung von Cronjobs zu erhalten. Bei dieser Datei handelt es sich um eine vollwertige crontab-Datei, | + | Des weiteren kann eine crontab-Datei im Verzeichnis hinterlegt werden, um volle Flexibilität bei der Generierung von Cronjobs zu erhalten. Bei dieser Datei handelt es sich um eine vollwertige crontab-Datei, |
Wichtig ist, dass die Syntax analog der Datei /// | Wichtig ist, dass die Syntax analog der Datei /// | ||
Zeile 992: | Zeile 973: | ||
Folgende Dateien bzw. Cronjobs stehen zur Verfügung: | Folgende Dateien bzw. Cronjobs stehen zur Verfügung: | ||
- | |Cronjob | + | | Cronjob |
- | |Vollwertige Crontab | + | | Vollwertige Crontab |
- | |Minütlich | + | | Minütlich |
- | |Alle 3 Minuten | + | | Alle 3 Minuten |
- | |Alle 5 Minuten | + | | Alle 5 Minuten |
- | |Alle 10 Minuten | + | | Alle 10 Minuten |
- | |Alle 15 Minuten | + | | Alle 15 Minuten |
- | |Alle 30 Minuten | + | | Alle 30 Minuten |
- | |Stündlich | + | | Stündlich |
- | |Täglich | + | | Täglich |
- | |Wöchentlich | + | | Wöchentlich |
- | |Monatlich | + | | Monatlich |
- | |Jährlich | + | | Jährlich |
- | |Bei Reboot //(Achtung, ab LoxBerry **2.0**)// | + | | Bei Reboot //(Achtung, ab LoxBerry **2.0**)// | '' |
Cronjobs, die unmittelbar nach Reboot ausgeführt werden, können sich nicht darauf verlassen, dass Netzwerk, alle LoxBerry-Plugin-Verzeichnisse und -Variablen bereits existieren. Entweder mit sleep den Start eigener Scripts verzögern, oder im Script prüfen, ob Verzeichnisse bereits angelegt sind. | Cronjobs, die unmittelbar nach Reboot ausgeführt werden, können sich nicht darauf verlassen, dass Netzwerk, alle LoxBerry-Plugin-Verzeichnisse und -Variablen bereits existieren. Entweder mit sleep den Start eigener Scripts verzögern, oder im Script prüfen, ob Verzeichnisse bereits angelegt sind. | ||
Zeile 1033: | Zeile 1014: | ||
Bitte verwendet Icons im Stil der anderen LoxBerry-Icons, | Bitte verwendet Icons im Stil der anderen LoxBerry-Icons, | ||
- | * Vollständige Icon-Library: | + | * Vollständige Icon-Library: |
* Leere Vorlage für eigene Gestaltung: | * Leere Vorlage für eigene Gestaltung: | ||
Zeile 1052: | Zeile 1033: | ||
==== Plugin-Pfade ==== | ==== Plugin-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
==== System-Pfade ==== | ==== System-Pfade ==== | ||
- | |Variable | + | | Variable |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
- | |'' | + | | '' |
Außerdem können die [[entwickler: | Außerdem können die [[entwickler: | ||
Zeile 1086: | Zeile 1066: | ||
**Ab LoxBerry 2.0:** Dem uninstallscript werden folgende Commandline-Parameter übergeben: | **Ab LoxBerry 2.0:** Dem uninstallscript werden folgende Commandline-Parameter übergeben: | ||
- | |Nr.|Inhalt | + | | Nr. | Inhalt |
- | |1 |Temporärer Ordner ('' | + | | 1 | Temporärer Ordner ('' |
- | |2 |Tatsächlich verwendeter Plugin-Name (siehe [[https:// | + | | 2 | Tatsächlich verwendeter Plugin-Name (siehe [[https:// |
- | |3 |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// | + | | 3 | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https:// |
- | |4 |Plugin-Version (siehe [[https:// | + | | 4 | Plugin-Version (siehe [[https:// |
- | |5 |LoxBerry Basis-Ordner (normalerweise '' | + | | 5 | LoxBerry Basis-Ordner (normalerweise '' |
**Ab LoxBerry 2.0:** Bei der Ausführung des uninstall-Scripts sind außer der Cronjob-Dateien noch alle Daten vorhanden. Es können (und sollten) eigene Daemons, Scripts, Services etc. beendet bzw. gekillt werden. | **Ab LoxBerry 2.0:** Bei der Ausführung des uninstall-Scripts sind außer der Cronjob-Dateien noch alle Daten vorhanden. Es können (und sollten) eigene Daemons, Scripts, Services etc. beendet bzw. gekillt werden. | ||
Zeile 1115: | Zeile 1094: | ||
Hier kann eine Datei mit Namen " | Hier kann eine Datei mit Namen " | ||
- | Die Syntax des Sudoers-File beschreibt die Manpage: https:// | + | Die Syntax des Sudoers-File beschreibt die Manpage: |
Bei der Installation wird die Datei umbenannt in den Pluginnamen aus plugin.cfg (vergleiche [[https:// | Bei der Installation wird die Datei umbenannt in den Pluginnamen aus plugin.cfg (vergleiche [[https:// | ||
Zeile 1121: | Zeile 1100: | ||
====== Unterverzeichnis: | ====== Unterverzeichnis: | ||
- | Über dieses Unterverzeichnis können vom Plugin fehlende Softwarepakete nachinstalliert werden. Hierbei kann sowohl auf Stadardpakete | + | Über dieses Unterverzeichnis können vom Plugin fehlende Softwarepakete nachinstalliert werden. Hierbei kann sowohl auf Standardpakete |
**Software aus dem Standard Raspbian Repository: | **Software aus dem Standard Raspbian Repository: | ||
Zeile 1127: | Zeile 1106: | ||
Hierzu muss im Verzeichnis die Datei "'' | Hierzu muss im Verzeichnis die Datei "'' | ||
- | Vor Installation | + | Es ist auch möglich, abhängig von der **LoxBerry** Major-Versionsnummer unterschiedliche |
- | Wenn vom Plugin keine zusätzlichen Pakete benötigt werden, | + | Zusätzlich |
+ | Vor Installation der Pakete wird der Befehl '' | ||
+ | |||
+ | Wenn vom Plugin keine zusätzlichen Pakete benötigt werden, ist es ratsam die Datei '' | ||
**Beispiel: Datei apt** | **Beispiel: Datei apt** | ||
Zeile 1145: | Zeile 1127: | ||
**Software aus selbst mitgelieferten DEB-Paketen: | **Software aus selbst mitgelieferten DEB-Paketen: | ||
- | Möchte man direkt DEB-Pakete mitliefern, z. B. weil die benötigte Software im Standard-Repository nicht zur Verfügung steht, muss für jede Hardware-Architektur ein entsprechendes Unterverzeichnis angelegt werden: | + | Möchte man direkt DEB-Pakete mitliefern, z. B. weil die benötigte Software im Standard-Repository nicht zur Verfügung steht, muss für jede Hardware-Architektur ein entsprechendes Unterverzeichnis angelegt werden, in dem dann die DEB-Pakete liegen. Es werden dabei Verzeichnisse mit dem Architektur-Namen erwartet, die auch der Befehl uname -m zurückliefert. Mit DietPi wurden die unterstützten Architekturen erweitert (ab LoxBerry 3.0). Aktuell (Stand: 07.03.2023) sind das: |
- | |Architektur|Unterverzeichnis | | + | ^ Architektur |
- | |Raspberry | + | | %%Armv6l%% |
- | |X86 | + | | %%Armv7l%% |
- | |X64 | + | | %%Aarch64 bzw. Arm64%% |
+ | | %%x86_64%% | ||
+ | | %%Riscv64%% | ||
In die Unterverzeichnisse werden dann die DEB-Pakete direkt abgelegt. Diese werden auf der jeweiligen Hardware-Plattform in alphabetischer Reihenfolge per '' | In die Unterverzeichnisse werden dann die DEB-Pakete direkt abgelegt. Diese werden auf der jeweiligen Hardware-Plattform in alphabetischer Reihenfolge per '' | ||
+ | |||
====== Besonderheiten / Hinweise ====== | ====== Besonderheiten / Hinweise ====== | ||
Zeile 1172: | Zeile 1157: | ||
**/ | **/ | ||
- | Wird in einem Plugin hardcoded der Pfad '' | + | Wird in einem Plugin hardcoded der Pfad '' |
Innerhalb von Perl- und PHP-Scripten können die Variablen der Module verwendet werden. | Innerhalb von Perl- und PHP-Scripten können die Variablen der Module verwendet werden. | ||
Zeile 1190: | Zeile 1175: | ||
Wenn du so weit gelesen hast, können wir dich auch gerne einladen, der LB-Plugins WhatsApp-Gruppe beizutreten, | Wenn du so weit gelesen hast, können wir dich auch gerne einladen, der LB-Plugins WhatsApp-Gruppe beizutreten, | ||
- | Bitte um Kontaktaufnahme im LoxForum, mit Name, WhatsApp-Telefonnummer und kurzer Beschreibung, | + | Bitte um Kontaktaufnahme im LoxForum, mit Name, WhatsApp-Telefonnummer und kurzer Beschreibung, |