Metainformationen zur Seite

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:start [2022/09/21 21:28] Michael Schlenstedtentwickler: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 (ab Version 1.x)  ====== +====== Plugin für den Loxberry entwickeln ======
- +
-<do Prof.Mobilux>Neue Möglichkeiten für Skripte (verschiedene Dateiendungen, ohne Endung, mehrere Skripte pro Typ) ergänzen</do> +
- +
-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//. +
- +
- +
- +
-\\+
  
 +<do Prof.Mobilux>HELP-Link in der plugin.cfg ergänzen</do>
  
 Der LoxBerry kann über Plugins erweitert werden. Plugins bestehen aus einer Reihe von Dateien in einem Standard-ZIP-Archiv, die bei der Installation an die notwendigen Orte im Dateisystem des LoxBerry kopiert werden. Bei diesen Dateien kann es sich z. B. um PHP- oder CGI-Skriptdateien handeln. Des weiteren kann durch das Plugin Software aus dem Software-Repository der Linuxdistribution  auf dem LoxBerry nachinstalliert werden. Der LoxBerry kann über Plugins erweitert werden. Plugins bestehen aus einer Reihe von Dateien in einem Standard-ZIP-Archiv, die bei der Installation an die notwendigen Orte im Dateisystem des LoxBerry kopiert werden. Bei diesen Dateien kann es sich z. B. um PHP- oder CGI-Skriptdateien handeln. Des weiteren kann durch das Plugin Software aus dem Software-Repository der Linuxdistribution  auf dem LoxBerry nachinstalliert werden.
Zeile 17: 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 "Sample Plugins" herunterladen, mit dem Du alle Schritte nachvollziehen kannst. Wir haben ein Sample Plugin, was die Entwicklung unter PERL beschreibt sowie ein Sample Plugin, was die Entwicklung unter PHP beschreibt. Natürlich kannst Du später die beiden Skriptsprachen auch mischen, aber für den Anfang ist es am einfachsten wenn Du die Sparache wählst, die Du am Besten beherrscht. 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 "Sample Plugins" herunterladen, mit dem Du alle Schritte nachvollziehen kannst. Wir haben ein Sample Plugin, was die Entwicklung unter PERL beschreibt sowie ein Sample Plugin, was die Entwicklung unter PHP beschreibt. Natürlich kannst Du später die beiden Skriptsprachen auch mischen, aber für den Anfang ist es am einfachsten wenn Du die Sparache wählst, die Du am Besten beherrscht.
  
-PERL: https://github.com/mschlenstedt/LoxBerry-Plugin-SamplePlugin-V2-Perl +  * PERL: [[https://github.com/mschlenstedt/LoxBerry-Plugin-SamplePlugin-V2-Perl]] 
- +  PHP: [[https://github.com/christianTF/LoxBerry-Plugin-SamplePlugin-V2-PHP]]
-PHP: https://github.com/christianTF/LoxBerry-Plugin-SamplePlugin-V2-PHP +
- +
-\\ +
  
-**Benutzung des Plugin Generators\\ +== Benutzung des Plugin Generators ==
-**+
  
 Wenn du NPM hast, kannst du den Plugin Generator für Perl, PHP oder Node benutzen. Du wirst durch eine Reihe an Fragen geführt die du beantworten kannst, darauf hin wird die komplette Struktur mit den entsprechenden Dateien angelegt. Es sollte dir das initiale setup vereinfachen und du kannst direkt loslegen. Wenn du NPM hast, kannst du den Plugin Generator für Perl, PHP oder Node benutzen. Du wirst durch eine Reihe an Fragen geführt die du beantworten kannst, darauf hin wird die komplette Struktur mit den entsprechenden Dateien angelegt. Es sollte dir das initiale setup vereinfachen und du kannst direkt loslegen.
Zeile 32: Zeile 17:
   * [[https://www.npmjs.com/package/create-loxberry-plugin|Dokumentation des Generators]]   * [[https://www.npmjs.com/package/create-loxberry-plugin|Dokumentation des Generators]]
  
-<code>+<code bash>
 npm init loxberry-plugin <ordner des Plugins> npm init loxberry-plugin <ordner des Plugins>
-  
 </code> </code>
- 
-\\ 
- 
  
 ====== Was ist ein LoxBerry-Plugin? ====== ====== Was ist ein LoxBerry-Plugin? ======
Zeile 51: Zeile 32:
  
 Wenn Du planst Deine Skriptlösung auch für den LoxBerry zur Verfügung zu stellen, dann schaue Dir am Besten einfach schon einmal [[plugins:start|existierende Plugins]] an und arbeite anschließend diese Anleitung anhand des sogenannten "Sample-Plugins" durch - das Sample Plugin behandelt alle Möglichkeiten der Pluginschnittstelle, sodass mit Hilfe dieses Beispiel-Plugins sehr gut nachvollziehbar ist, wie das Ganze funktioniert. Wenn Du planst Deine Skriptlösung auch für den LoxBerry zur Verfügung zu stellen, dann schaue Dir am Besten einfach schon einmal [[plugins:start|existierende Plugins]] an und arbeite anschließend diese Anleitung anhand des sogenannten "Sample-Plugins" durch - das Sample Plugin behandelt alle Möglichkeiten der Pluginschnittstelle, sodass mit Hilfe dieses Beispiel-Plugins sehr gut nachvollziehbar ist, wie das Ganze funktioniert.
- 
-\\ 
- 
  
 ====== Aufbau der ZIP-Datei ====== ====== Aufbau der ZIP-Datei ======
Zeile 59: 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:plugin_veroffentlichen|oder gleich die Release-Funktion]] [[entwickler:plugin_veroffentlichen|von GitHub verwenden, um Dein plugin zu veröffentlichen]]. Die ZIP-Dateien von GitHub sind kompatibel mit LoxBerry. 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:plugin_veroffentlichen|oder gleich die Release-Funktion]] [[entwickler:plugin_veroffentlichen|von GitHub verwenden, um Dein plugin zu veröffentlichen]]. Die ZIP-Dateien von GitHub sind kompatibel mit LoxBerry.
  
-\\ +{{entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:1209205068.png?400}} 
- +
- +
-{{entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:1209205068.png?h=400}}  +
- +
-\\ +
  
 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 87: Zeile 59:
   - Installation der Datei "sudoers/sudoers" nach LBHOMEDIR/system/sudoers   - Installation der Datei "sudoers/sudoers" nach LBHOMEDIR/system/sudoers
   - 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/raspberry +  - Installation zusätzlicher mitgelieferter DEB-Pakete aus dem Verzeichnis dpkg/<arch>
-  - Nur X86-Architektur: Installation zusätzlicher mitgelieferter DEB-Pakete aus dem Verzeichnis dpkg/x86 +
-  - Nur X64-Architektur: Installation zusätzlicher mitgelieferter DEB-Pakete aus dem Verzeichnis dpkg/x64+
   - Ausführen der Datei "postinstall.sh" mit Userrechten (loxberry)   - Ausführen der Datei "postinstall.sh" mit Userrechten (loxberry)
   - Nur bei Update: Ausführen der Datei "postupgrade.sh" mit Userrechten (loxberry)   - Nur bei Update: Ausführen der Datei "postupgrade.sh" mit Userrechten (loxberry)
   - Ausführung der Datei "postroot.sh" mit Rootrechten   - Ausführung der Datei "postroot.sh" mit Rootrechten
- 
-\\ 
- 
  
 ====== Rootverzeichnis - Datei: plugin.cfg    PFLICHT ====== ====== Rootverzeichnis - Datei: plugin.cfg    PFLICHT ======
  
-\\ 
 Diese Datei ist die zentrale Konfigurationsdatei für das Plugin. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Der Dateiaufbau ähnelt dem einer typischen INI-Datei unter Windows: Die Daten sind in Blöcke organisiert, jeder Block wird durch den Blocknamen in eckigen Klammern eingeleitet, jede Option innerhalb eines Blockes wird durch KEY=VALUE gesetzt. Kommentare werden durch eine vorangestellte Raute eingeleitet und bei der Interpretation der Datei ignoriert. Diese Datei ist die zentrale Konfigurationsdatei für das Plugin. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Der Dateiaufbau ähnelt dem einer typischen INI-Datei unter Windows: Die Daten sind in Blöcke organisiert, jeder Block wird durch den Blocknamen in eckigen Klammern eingeleitet, jede Option innerhalb eines Blockes wird durch KEY=VALUE gesetzt. Kommentare werden durch eine vorangestellte Raute eingeleitet und bei der Interpretation der Datei ignoriert.
- 
-\\ 
- 
  
 **1. Block: AUTHOR** **1. Block: AUTHOR**
Zeile 118: Zeile 81:
 </code> </code>
  
 +|   | Key  | Value  |
 +| 1 | NAME | Legt den Namen des Autors oder der Projektgruppe fest. |
 +| 2 | EMAIL | Email-Adresse des Autors oder der Projektgruppe  |
  
 +<WRAP center round tip 100%>
  
-| |Key  |Value                                                 | +== Wichtiger Hinweis! ==
-|1|NAME |Legt den Namen des Autors oder der Projektgruppe fest.| +
-|2|EMAIL|Email-Adresse des Autors oder der Projektgruppe       | +
- +
- +
-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.
  
- +</WRAP>
- +
-   +
- +
-  +
  
 **2. Block: PLUGIN** **2. Block: PLUGIN**
Zeile 164: Zeile 121:
 </code> </code>
  
 +|   | 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:plugin_fur_den_loxberry_entwickeln_ab_version_1x:versionsnummern_von_plugins|korrekte Versionssyntax]] verwenden, andernfalls wird das Plugin bei automatischen Plugin-Updates ausgelassen!  |
 +| 2 | NAME  | Kurzer Plugin-Name. Keine Leerzeichen, keine Sonderzeichen, nur Kleinbuchstaben! Dieser Name wird als Dateiname verwendet, wenn z. B. in zentralen Ordnern (Cron, Daemon, siehe unten) Skripte für das Plugin angelegt werden sollen. Dieser Name muss im System einzigartig sein. Wenn festgestellt wird, dass bereits ein Plugin installiert ist, welches den gleichen Namen verwendet, wird bei der Installation automatisch "01", "02" usw. angehängt. //Wir empfehlen, NAME und FOLDER gleich zu setzen.// |
 +| 3 | FOLDER | Verzeichnis-Name. Keine Leerzeichen, keine Sonderzeichen, nur Kleinbuchstaben! Dieser Name wird als Name der Unterverzeichnisse erwendet, in die die einzelnen Dateien des Plugins installiert werden. Dieser Name muss im System einzigartig sein. Wenn festgestellt wird, dass bereits ein Plugin installiert ist, welches den gleichen Namen verwendet, wird bei der Installation automatisch "01", "02" usw. angehängt. //Wir empfehlen, NAME und FOLDER gleich zu setzen.//  |
 +| 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, Leerzeichen etc. verwendet werden. Der Name sollte nicht länger als 25 Zeichen sein.  |
  
 +<WRAP center round tip 100%>
  
-| |Key    |Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          | +== Wichtiger Hinweis! ==
-|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:plugin_fur_den_loxberry_entwickeln_ab_version_1x:versionsnummern_von_plugins|korrekte Versionssyntax]] verwenden, andernfalls wird das Plugin bei automatischen Plugin-Updates ausgelassen!                                                                                                                                                | +
-|2|NAME   |Kurzer Plugin-Name. Keine Leerzeichen, keine Sonderzeichen, nur Kleinbuchstaben! Dieser Name wird als Dateiname verwendet, wenn z. B. in zentralen Ordnern (Cron, Daemon, siehe unten) Skripte für das Plugin angelegt werden sollen. Dieser Name muss im System einzigartig sein. Wenn festgestellt wird, dass bereits ein Plugin installiert ist, welches den gleichen Namen verwendet, wird bei der Installation automatisch "01", "02" usw. angehängt. //Wir empfehlen, NAME und FOLDER gleich zu setzen.//+
-|3|FOLDER |Verzeichnis-Name. Keine Leerzeichen, keine Sonderzeichen, nur Kleinbuchstaben! Dieser Name wird als Name der Unterverzeichnisse erwendet, in die die einzelnen Dateien des Plugins installiert werden. Dieser Name muss im System einzigartig sein. Wenn festgestellt wird, dass bereits ein Plugin installiert ist, welches den gleichen Namen verwendet, wird bei der Installation automatisch "01", "02" usw. angehängt. //Wir empfehlen, NAME und FOLDER gleich zu setzen.//                               | +
-|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, Leerzeichen etc. verwendet werden. Der Name sollte nicht länger als 25 Zeichen sein.                                                                                                                                                                                                                                                          | +
- +
- +
-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.
  
- +</WRAP>
- +
-   +
- +
-    +
- +
-**2. Block: PLUGIN** +
- +
-<code syntaxhighlighter-pre> +
-[AUTOUPDATE] +
-# If your plugin offers automatic updates, please enable the following option. +
-# Details here: http://www.loxwiki.eu/x/WoG3AQ +
-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://raw.githubusercontent.com/mschlenstedt/LoxBerry-Plugin-SamplePlugin-V2-Perl/master/release.cfg +
- +
-# 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://raw.githubusercontent.com/mschlenstedt/LoxBerry-Plugin-SamplePlugin-V2-Perl/master/prerelease.cfg  +
-</code> +
- +
- +
- +
-| |Key              |Value                                                                                                                                                                                                                | +
-|1|AUTOMATIC_UPDATES|Legt fest, ob das Plugin die AutoUpdate-Funktion zur Verfügung stellt oder nicht. Details hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:plugin_autoupdate_function_for_plugins|AutoUpdate Funktion für Plugins]] Mögliche Werte: true|false| +
-|2|RELEASECFG       |Eine URL, unter der die Datei mit den Einstellungen zum Release vom System heruntergeladen werden kann. Details hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:plugin_autoupdate_function_for_plugins|AutoUpdate Funktion für Plugins]]     | +
-|3|PRERELEASECFG    |Eine URL, unter der die Datei mit den Einstellungen zum PreRelease vom System heruntergeladen werden kann. Details hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:plugin_autoupdate_function_for_plugins|AutoUpdate Funktion für Plugins]] +
- +
- +
-\\ +
  
 **3. Block: SYSTEM** **3. Block: SYSTEM**
Zeile 239: 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://www.loxwiki.eu:80/x/VoU_AQ section 5.1 for supported +ARCHITECTURE="aarch64,x86_64"
-# architectures and strings you should use here. +
-ARCHITECTURE="raspberry,x86"+
  
 # If you are using the LoxBerry::Log Modul in PHP or Perl and you would like to use User-defined loglevels, # If you are using the LoxBerry::Log Modul in PHP or Perl and you would like to use User-defined loglevels,
Zeile 252: Zeile 167:
 </code> </code>
  
 +|   | Key  | Value  |   |
 +| 1 | REBOOT  | Wenn true, wird nach der Plugin-Installation zum Reboot aufgefordert. Mögliche Werte: true | false  |
 +| 2 | LB_MINIMUM  | Minimalversion des LoxBerry, ab der das Plugin lauffähig ist, z. B. 1.0.1. Mögliche Werte: Versionstring | false  |
 +| 3 | LB_MAXIMUM  | Maximalversion des LoxBerry, bis zu der das Plugin lauffähig ist, z. B. 1.0.1. Mögliche Werte: Versionstring | false  |
 +| 4 | ARCHITECTURE  | Falls das Plugin nur auf bestimmten Hardware-Plattformen lauffähig ist (z. B. weil es die GPIOs des Raspberry voraussetzt), kann das hier angegeben werden. Mehrere Plattformen können durch Kommata getrennt werden. Aktuell unterstützt: %%armv6l, armv7l, aarch64, x86_64, riscv64. Es wird das Kürzel erwartet, welches der Befehl "uname -m" zurückliefert. Siehe auch: %%[[https://github.com/MichaIng/DietPi/blob/master/dietpi/func/dietpi-obtain_hw_model|https://github.com/MichaIng/DietPi/blob/master/dietpi/func/dietpi-obtain_hw_model]]  |   |
 +| 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::Log verwendet werden, siehe [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrylog:start|Perl-Modul LoxBerry::Log]] bzw. [[entwickler:php_develop_plugins_with_php:php_loxberry_sdk_documentation:php_module_loxberry_logphp:start|PHP Module loxberry_log.php]]. Es kann auch als Ersatz einer eigenen Loglevel-Einstellung im Plugin verwendet werden, siehe [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrysystem:loxberrysystempluginloglevel|LoxBerry::System::pluginloglevel]] bzw. [[entwickler:php_develop_plugins_with_php:php_loxberry_sdk_documentation:php_module_loxberry_systemphp:lbsystempluginloglevel|LBSystem::pluginloglevel]]. Mögliche Werte: true | false |
 +| 6 | INTERFACE  | Die Interface-Version, für die das Plugin entwickelt wurde. Wenn Du die Features aus dieser anleitung verwenden möchtest, muss hier 2.0 eingetragen werden.  |   |
  
 +**4. Block: AUTOUPDATE**
  
-| |Key             |Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     | +<code syntaxhighlighter-pre> 
-|1|REBOOT          |Wenn true, wird nach der Plugin-Installation zum Reboot aufgefordert. Mögliche Werte: true|false                                                                                                                                                                                                                                                                                                                                                                                                                                                          | +[AUTOUPDATE] 
-|2|LB_MINIMUM      |Minimalversion des LoxBerry, ab der das Plugin lauffähig ist, z. B. 1.0.1. Mögliche Werte: Versionstring|false                                                                                                                                                                                                                                                                                                                                                                                                                                            | +# If your plugin offers automatic updatesplease enable the following option
-|3|LB_MAXIMUM      |Maximalversion des LoxBerrybis zu der das Plugin lauffähig ist, zB. 1.0.1. Mögliche Werte: Versionstring|false                                                                                                                                                                                                                                                                                                                                                                                                                                        | +# Details herehttp://www.loxwiki.eu/x/WoG3AQ 
-|4|ARCHITECTURE    |Falls das Plugin nur auf bestimmten Hardware-Plattformen lauffähig ist (z. B. weil es die GPIOs des Raspberry voraussetzt), kann das hier angegeben werden. Mehrere Plattformen können durch Kommata getrennt werden. Aktuell unterstütztraspberry, x86 und x64.                                                                                                                                                                                                                                                                                        | +AUTOMATIC_UPDATES=true 
-|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::Log verwendet werden, siehe [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrylog:start|Perl-Modul LoxBerry::Log]] bzw[[entwickler:php_develop_plugins_with_php:php_loxberry_sdk_documentation:php_module_loxberry_logphp:start|PHP Module loxberry_log.php]]. Es kann auch als Ersatz einer eigenen Loglevel-Einstellung im Plugin verwendet werden, siehe [[entwickler:perl_develop_plugins_with_perl:perl_loxberry_sdk_dokumentation:perlmodul_loxberrysystem:loxberrysystempluginloglevel|LoxBerry::System::pluginloglevel]] bzw. [[entwickler:php_develop_plugins_with_php:php_loxberry_sdk_documentation:php_module_loxberry_systemphp:lbsystempluginloglevel|LBSystem::pluginloglevel]]. Mögliche Werte: true|false| +
-|6|INTERFACE       |Die Interface-Version, für die das Plugin entwickelt wurde. Wenn Du die Features aus dieser anleitung verwenden möchtest, muss hier 2.0 eingetragen werden.                                                                                                                                                                                                                                                                                                                                                                                               |+
  
 +# 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://raw.githubusercontent.com/mschlenstedt/LoxBerry-Plugin-SamplePlugin-V2-Perl/master/release.cfg
  
-  +# 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://raw.githubusercontent.com/mschlenstedt/LoxBerry-Plugin-SamplePlugin-V2-Perl/master/prerelease.cfg  
 +</code> 
 + 
 +|   | Key  | Value  |   | 
 +| 1 | AUTOMATIC_UPDATES | Legt fest, ob das Plugin die AutoUpdate-Funktion zur Verfügung stellt oder nicht. Details hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:plugin_autoupdate_function_for_plugins|AutoUpdate Funktion für Plugins]] Mögliche Werte: true | false | 
 +| 2 | RELEASECFG  | Eine URL, unter der die Datei mit den Einstellungen zum Release vom System heruntergeladen werden kann. Details hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:plugin_autoupdate_function_for_plugins|AutoUpdate Funktion für Plugins]]  |   | 
 +| 3 | PRERELEASECFG  | Eine URL, unter der die Datei mit den Einstellungen zum PreRelease vom System heruntergeladen werden kann. Details hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:plugin_autoupdate_function_for_plugins|AutoUpdate Funktion für Plugins]]  |   |
  
 ====== Rootverzeichnis - Datei: preroot.sh    OPTIONAL ====== ====== Rootverzeichnis - Datei: preroot.sh    OPTIONAL ======
  
-Bei der Datei //preroot.sh// handelt es sich um ein Shell-Skript, welches vor der Installation ausgeführt wird. Die Datei wird mit Root-Rechten ausgeführt, hat also umfangreiche Rechte im System. Sie sollte nur verwendet werden, wenn unbedingt Kommandos als User root ausgeführt werden müssen. Ansonsten sollte man das Skript "preinstall.sh" verwenden (siehe unten). Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird vor der Installation als Benutzer "root" ausgeführt. Es kann verwendet werden um Dinge für die Installation vorzubereiten oder Kommandos auf dem System auszuführen.+Bei der Datei //preroot.sh// handelt es sich um ein Shell-Skript, welches vor der Installation ausgeführt wird. Ab LoxBerry 3.0 sind auch andere Dateiendungen erlaubt (zum Beispiel .pl oder .py - in diesem Fall muss der Shebang im Skript korrekt gesetzt sein). Die Datei wird mit Root-Rechten ausgeführt, hat also umfangreiche Rechte im System. Sie sollte nur verwendet werden, wenn unbedingt Kommandos als User root ausgeführt werden müssen. Ansonsten sollte man das Skript "preinstall.sh" verwenden (siehe unten). Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird vor der Installation als Benutzer "root" ausgeführt. Es kann verwendet werden um Dinge für die Installation vorzubereiten oder Kommandos auf dem System auszuführen.
  
 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  | Bash-Variable | 
- +| 1  | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%'' | ''%%$1%%''  
- +| 2  | Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$2%%''  
-|Nr.|Inhalt                                                                                                                                                                                                                                |Bash-Variable| +| 3  | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]]) | ''%%$3%%''  
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 4  | Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$4%%''  
-|2  |Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])               |''%%$2%%''   +| 5  | LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%'' | ''%%$5%%''  
-|3  |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])|''%%$3%%''   +| 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%%''  |
-|4  |Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])                                    |''%%$4%%''   +
-|5  |LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%''                                                                                                                                                                          |''%%$5%%''   +
-|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%%''   | +
- +
- +
-\\ +
  
 Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]] Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]]
Zeile 292: Zeile 223:
 ==== Plugin-Pfade ==== ==== Plugin-Pfade ====
  
-|Variable           |Bedeutung                                  |LoxBerry-Original                                         +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBHOMEDIR%%''  |Homeverzeichnis von LoxBerry               |''%%/opt/loxberry%%''                                     +| ''%%LBHOMEDIR%%''  | Homeverzeichnis von LoxBerry  | ''%%/opt/loxberry%%''  
-|''%%LBPHTMLAUTH%%''|Plugin-HTML-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/htmlauth/plugins%%''+| ''%%LBPHTMLAUTH%%'' | Plugin-HTML-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/htmlauth/plugins%%''
-|''%%LBPHTML%%''    |Plugin-HTML-Verzeichnis (ohne Auth)        |''%%/opt/loxberry/%%''''%%webfrontend/html/plugins%%''    +| ''%%LBPHTML%%''  | Plugin-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/plugins%%''  
-|''%%LBPTEMPL%%''   |Plugin-Template-Verzeichnis                |''%%/opt/loxberry/%%''''%%templates/plugins%%''           +| ''%%LBPTEMPL%%''  | Plugin-Template-Verzeichnis  | ''%%/opt/loxberry/templates/plugins%%''  
-|''%%LBPDATA%%''    |Plugin-Data-Verzeichnis                    |''%%/opt/loxberry/%%''''%%data/plugins%%''                +| ''%%LBPDATA%%''  | Plugin-Data-Verzeichnis  | ''%%/opt/loxberry/data/plugins%%''  
-|''%%LBPLOG%%''     |Plugin-Log-Verzeichnis                     |''%%/opt/loxberry%%''''%%/log/plugins%%''                 +| ''%%LBPLOG%%''  | Plugin-Log-Verzeichnis  | ''%%/opt/loxberry/log/plugins%%''  
-|''%%LBPCONFIG%%''  |Plugin-Config-Verzeichnis                  |''%%/opt/loxberry%%''''%%/config/plugins%%''              +| ''%%LBPCONFIG%%''  | Plugin-Config-Verzeichnis  | ''%%/opt/loxberry/config/plugins%%''  
-|''%%LBPBIN%%''     |Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**   |''%%/opt/loxberry%%''''%%/bin/plugins%%''                 | +| ''%%LBPBIN%%''  | Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin/plugins%%''  |
  
 ==== System-Pfade ==== ==== System-Pfade ====
  
-|Variable           |Bedeutung                                      |LoxBerry-Original                                    +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBSHTMLAUTH%%''|System-HTMLAUTH-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/cgi/system%%''+| ''%%LBSHTMLAUTH%%'' | System-HTMLAUTH-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/cgi/system%%''
-|''%%LBSHTML%%''    |System-HTML-Verzeichnis (ohne Auth)            |''%%/opt/loxberry%%''''%%/webfrontend/html/system%%''+| ''%%LBSHTML%%''  | System-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/system%%''
-|''%%LBSTEMPL%%''   |System-Template-Verzeichnis                    |''%%/opt/loxberry%%''''%%/templates/system%%''       +| ''%%LBSTEMPL%%''  | System-Template-Verzeichnis   | ''%%/opt/loxberry/templates/system%%''  
-|''%%LBSDATA%%''    |System-Data-Verzeichnis                        |''%%/opt/loxberry%%''''%%/data/system%%''            +| ''%%LBSDATA%%''  | System-Data-Verzeichnis   | ''%%/opt/loxberry/data/system%%''  
-|''%%LBSLOG%%''     |System-Log-Verzeichnis                         |''%%/opt/loxberry%%''''%%/log/system %%''            +| ''%%LBSLOG%%''  | System-Log-Verzeichnis   | ''%%/opt/loxberry/log/system %%''  
-|''%%LBSTMPFSLOG%%''|System-Log-Verzeichnis (tmpfs)                 |''%%/opt/loxberry%%''''%%/log/system_tmpfs%%''       +| ''%%LBSTMPFSLOG%%'' | System-Log-Verzeichnis (tmpfs)  | ''%%/opt/loxberry/log/system_tmpfs%%''  
-|''%%LBSCONFIG %%'' |System-Config-Verzeichnis                      |''%%/opt/loxberry%%''''%%/config/system%%''          +| ''%%LBSCONFIG %%'' | System-Config-Verzeichnis  | ''%%/opt/loxberry/config/system%%''  
-|''%%LBSBIN%%''     |System-Bin-Verzeichnis **(ab LB 1.2.2)**       |''%%/opt/loxberry%%''''%%/sbin%%''                   +| ''%%LBSBIN%%''  | System-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/sbin%%''  
-|''%%LBSSBIN%%''    |System-Sbin-Verzeichnis **(ab LB 1.2.2)**      |''%%/opt/loxberry%%''''%%/bin%%''                    | +| ''%%LBSSBIN%%''  | System-Sbin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin%%''  |
- +
- +
  
 Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]] Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]]
Zeile 323: Zeile 250:
 Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden: Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden:
  
-\\ +| Logfile Tags | Hervorhebung  
- +| <OK>  | Grün  
- +| <INFO>  | Schwarz/Neutral | 
-|Logfile Tags|Hervorhebung   +| <WARNING>  | Rot  
-|<OK>        |Grün           +| <ERROR>  | Rot  
-|<INFO>      |Schwarz/Neutral| +| <FAIL>  | Rot  |
-|<WARNING>   |Rot            +
-|<ERROR>     |Rot            +
-|<FAIL>      |Rot            | +
- +
- +
-\\ +
  
 Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern. Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern.
  
-\\+**Beispiel: Datei preroot.sh**
  
- +<code bash>
-**Beispiel: Datei preroot.sh** Quelle erweitern +
- +
-<code syntaxhighlighter-pre>+
 #!/bin/bash #!/bin/bash
  
Zeile 409: Zeile 326:
 exit 0 exit 0
 </code> </code>
- 
- 
  
 ====== Rootverzeichnis - Datei: preupgrade.sh    OPTIONAL ====== ====== Rootverzeichnis - Datei: preupgrade.sh    OPTIONAL ======
  
-Bei der Datei //preupgrade.sh// handelt es sich um ein Shell-Skript, welches vor der Installation und nur im Falle eines Plugin-Updates ausgeführt wird. D. h. das Plugin muss schon auf dem System existieren, damit dieses Skript bei der Installation ausgeführt wird. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird vor einem Update als Benutzer "loxberry" ausgeführt. Es kann verwendet werden, um im Falle eines Updates Konfigurationsdateien des Plugins zu sichern. +Bei der Datei //preupgrade.sh// handelt es sich um ein Shell-Skript, welches vor der Installation und nur im Falle eines Plugin-Updates ausgeführt wird. Ab LoxBerry 3.0 sind auch andere Dateiendungen erlaubt (zum Beispiel .pl oder .py - in diesem Fall muss der Shebang im Skript korrekt gesetzt sein).  D. h. das Plugin muss schon auf dem System existieren, damit dieses Skript bei der Installation ausgeführt wird. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird vor einem Update als Benutzer "loxberry" ausgeführt. Es kann verwendet werden, um im Falle eines Updates Konfigurationsdateien des Plugins zu sichern. 
  
 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  | Bash-Variable | 
- +| 1  | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%'' | ''%%$1%%''  
- +| 2  | Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$2%%''  
-|Nr.|Inhalt                                                                                                                                                                                                                                |Bash-Variable| +| 3  | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]]) | ''%%$3%%''  
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 4  | Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$4%%''  
-|2  |Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])               |''%%$2%%''   +| 5  | LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%'' | ''%%$5%%''  
-|3  |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])|''%%$3%%''   +| 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%%''  |
-|4  |Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])                                    |''%%$4%%''   +
-|5  |LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%''                                                                                                                                                                          |''%%$5%%''   +
-|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%%''   | +
- +
- +
-\\ +
  
 Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]] Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]]
Zeile 439: Zeile 347:
 ==== Plugin-Pfade ==== ==== Plugin-Pfade ====
  
-|Variable           |Bedeutung                                  |LoxBerry-Original                                         +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBHOMEDIR%%''  |Homeverzeichnis von LoxBerry               |''%%/opt/loxberry%%''                                     +| ''%%LBHOMEDIR%%''  | Homeverzeichnis von LoxBerry  | ''%%/opt/loxberry%%''  
-|''%%LBPHTMLAUTH%%''|Plugin-HTML-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/htmlauth/plugins%%''+| ''%%LBPHTMLAUTH%%'' | Plugin-HTML-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/htmlauth/plugins%%''
-|''%%LBPHTML%%''    |Plugin-HTML-Verzeichnis (ohne Auth)        |''%%/opt/loxberry/%%''''%%webfrontend/html/plugins%%''    +| ''%%LBPHTML%%''  | Plugin-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/plugins%%''  
-|''%%LBPTEMPL%%''   |Plugin-Template-Verzeichnis                |''%%/opt/loxberry/%%''''%%templates/plugins%%''           +| ''%%LBPTEMPL%%''  | Plugin-Template-Verzeichnis  | ''%%/opt/loxberry/templates/plugins%%''  
-|''%%LBPDATA%%''    |Plugin-Data-Verzeichnis                    |''%%/opt/loxberry/%%''''%%data/plugins%%''                +| ''%%LBPDATA%%''  | Plugin-Data-Verzeichnis  | ''%%/opt/loxberry/data/plugins%%''  
-|''%%LBPLOG%%''     |Plugin-Log-Verzeichnis                     |''%%/opt/loxberry%%''''%%/log/plugins%%''                 +| ''%%LBPLOG%%''  | Plugin-Log-Verzeichnis  | ''%%/opt/loxberry/log/plugins%%''  
-|''%%LBPCONFIG%%''  |Plugin-Config-Verzeichnis                  |''%%/opt/loxberry%%''''%%/config/plugins%%''              +| ''%%LBPCONFIG%%''  | Plugin-Config-Verzeichnis  | ''%%/opt/loxberry/config/plugins%%''  
-|''%%LBPBIN%%''     |Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**   |''%%/opt/loxberry%%''''%%/bin/plugins%%''                 | +| ''%%LBPBIN%%''  | Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin/plugins%%''  |
  
 ==== System-Pfade ==== ==== System-Pfade ====
  
-|Variable           |Bedeutung                                      |LoxBerry-Original                                    +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBSHTMLAUTH%%''|System-HTMLAUTH-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/cgi/system%%''+| ''%%LBSHTMLAUTH%%'' | System-HTMLAUTH-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/cgi/system%%''
-|''%%LBSHTML%%''    |System-HTML-Verzeichnis (ohne Auth)            |''%%/opt/loxberry%%''''%%/webfrontend/html/system%%''+| ''%%LBSHTML%%''  | System-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/system%%''
-|''%%LBSTEMPL%%''   |System-Template-Verzeichnis                    |''%%/opt/loxberry%%''''%%/templates/system%%''       +| ''%%LBSTEMPL%%''  | System-Template-Verzeichnis   | ''%%/opt/loxberry/templates/system%%''  
-|''%%LBSDATA%%''    |System-Data-Verzeichnis                        |''%%/opt/loxberry%%''''%%/data/system%%''            +| ''%%LBSDATA%%''  | System-Data-Verzeichnis   | ''%%/opt/loxberry/data/system%%''  
-|''%%LBSLOG%%''     |System-Log-Verzeichnis                         |''%%/opt/loxberry%%''''%%/log/system %%''            +| ''%%LBSLOG%%''  | System-Log-Verzeichnis   | ''%%/opt/loxberry/log/system %%''  
-|''%%LBSTMPFSLOG%%''|System-Log-Verzeichnis (tmpfs)                 |''%%/opt/loxberry%%''''%%/log/system_tmpfs%%''       +| ''%%LBSTMPFSLOG%%'' | System-Log-Verzeichnis (tmpfs)  | ''%%/opt/loxberry/log/system_tmpfs%%''  
-|''%%LBSCONFIG %%'' |System-Config-Verzeichnis                      |''%%/opt/loxberry%%''''%%/config/system%%''          +| ''%%LBSCONFIG %%'' | System-Config-Verzeichnis  | ''%%/opt/loxberry/config/system%%''  
-|''%%LBSBIN%%''     |System-Bin-Verzeichnis **(ab LB 1.2.2)**       |''%%/opt/loxberry%%''''%%/sbin%%''                   +| ''%%LBSBIN%%''  | System-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/sbin%%''  
-|''%%LBSSBIN%%''    |System-Sbin-Verzeichnis **(ab LB 1.2.2)**      |''%%/opt/loxberry%%''''%%/bin%%''                    | +| ''%%LBSSBIN%%''  | System-Sbin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin%%''  |
- +
- +
  
 Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]] Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]]
  
-Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden: +Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden:   
- +
-   +
- +
-|Logfile Tags|Hervorhebung   | +
-|<OK>        |Grün           | +
-|<INFO>      |Schwarz/Neutral| +
-|<WARNING>   |Rot            | +
-|<ERROR>     |Rot            | +
-|<FAIL>      |Rot            | +
- +
- +
-\\+
  
 +| Logfile Tags | Hervorhebung  |
 +| <OK>  | Grün  |
 +| <INFO>  | Schwarz/Neutral |
 +| <WARNING>  | Rot  |
 +| <ERROR>  | Rot  |
 +| <FAIL>  | Rot  |
  
 Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern. Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern.
  
-\\+**Beispiel: Datei preupgrade.sh** 
  
- +<code bash>
-**Beispiel: Datei preupgrade.sh** Quelle erweitern +
- +
-<code syntaxhighlighter-pre>+
 #!/bin/bash #!/bin/bash
  
Zeile 555: Zeile 450:
 exit 0 exit 0
 </code> </code>
- 
- 
- 
-    
  
 ====== Rootverzeichnis - Datei: preinstall.sh    OPTIONAL ====== ====== Rootverzeichnis - Datei: preinstall.sh    OPTIONAL ======
  
-Bei der Datei //preinstall.sh// handelt es sich um ein Shell-Skript, welches vor der Installation ausgeführt wird. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird vor der Installation als Benutzer "loxberry" ausgeführt. Es kann verwendet werden um Dinge für die Installation vorzubereiten oder Kommandos auf dem System auszuführen.+Bei der Datei //preinstall.sh// handelt es sich um ein Shell-Skript, welches vor der Installation ausgeführt wird. Ab LoxBerry 3.0 sind auch andere Dateiendungen erlaubt (zum Beispiel .pl oder .py - in diesem Fall muss der Shebang im Skript korrekt gesetzt sein). Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird vor der Installation als Benutzer "loxberry" ausgeführt. Es kann verwendet werden um Dinge für die Installation vorzubereiten oder Kommandos auf dem System auszuführen.
  
 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  | Bash-Variable | 
- +| 1  | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%'' | ''%%$1%%''  
- +| 2  | Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$2%%''  
-|Nr.|Inhalt                                                                                                                                                                                                                                |Bash-Variable| +| 3  | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]]) | ''%%$3%%''  
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 4  | Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$4%%''  
-|2  |Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])               |''%%$2%%''   +| 5  | LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%'' | ''%%$5%%''  
-|3  |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])|''%%$3%%''   +| 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%%''  |
-|4  |Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])                                    |''%%$4%%''   +
-|5  |LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%''                                                                                                                                                                          |''%%$5%%''   +
-|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%%''   | +
- +
- +
-\\ +
  
 Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]] Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]]
Zeile 587: Zeile 471:
 ==== Plugin-Pfade ==== ==== Plugin-Pfade ====
  
-|Variable           |Bedeutung                                  |LoxBerry-Original                                         +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBHOMEDIR%%''  |Homeverzeichnis von LoxBerry               |''%%/opt/loxberry%%''                                     +| ''%%LBHOMEDIR%%''  | Homeverzeichnis von LoxBerry  | ''%%/opt/loxberry%%''  
-|''%%LBPHTMLAUTH%%''|Plugin-HTML-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/htmlauth/plugins%%''+| ''%%LBPHTMLAUTH%%'' | Plugin-HTML-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/htmlauth/plugins%%''
-|''%%LBPHTML%%''    |Plugin-HTML-Verzeichnis (ohne Auth)        |''%%/opt/loxberry/%%''''%%webfrontend/html/plugins%%''    +| ''%%LBPHTML%%''  | Plugin-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/plugins%%''  
-|''%%LBPTEMPL%%''   |Plugin-Template-Verzeichnis                |''%%/opt/loxberry/%%''''%%templates/plugins%%''           +| ''%%LBPTEMPL%%''  | Plugin-Template-Verzeichnis  | ''%%/opt/loxberry/templates/plugins%%''  
-|''%%LBPDATA%%''    |Plugin-Data-Verzeichnis                    |''%%/opt/loxberry/%%''''%%data/plugins%%''                +| ''%%LBPDATA%%''  | Plugin-Data-Verzeichnis  | ''%%/opt/loxberry/data/plugins%%''  
-|''%%LBPLOG%%''     |Plugin-Log-Verzeichnis                     |''%%/opt/loxberry%%''''%%/log/plugins%%''                 +| ''%%LBPLOG%%''  | Plugin-Log-Verzeichnis  | ''%%/opt/loxberry/log/plugins%%''  
-|''%%LBPCONFIG%%''  |Plugin-Config-Verzeichnis                  |''%%/opt/loxberry%%''''%%/config/plugins%%''              +| ''%%LBPCONFIG%%''  | Plugin-Config-Verzeichnis  | ''%%/opt/loxberry/config/plugins%%''  
-|''%%LBPBIN%%''     |Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**   |''%%/opt/loxberry%%''''%%/bin/plugins%%''                 | +| ''%%LBPBIN%%''  | Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin/plugins%%''  |
  
 ==== System-Pfade ==== ==== System-Pfade ====
  
-|Variable           |Bedeutung                                      |LoxBerry-Original                                    +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBSHTMLAUTH%%''|System-HTMLAUTH-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/cgi/system%%''+| ''%%LBSHTMLAUTH%%'' | System-HTMLAUTH-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/cgi/system%%''
-|''%%LBSHTML%%''    |System-HTML-Verzeichnis (ohne Auth)            |''%%/opt/loxberry%%''''%%/webfrontend/html/system%%''+| ''%%LBSHTML%%''  | System-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/system%%''
-|''%%LBSTEMPL%%''   |System-Template-Verzeichnis                    |''%%/opt/loxberry%%''''%%/templates/system%%''       +| ''%%LBSTEMPL%%''  | System-Template-Verzeichnis   | ''%%/opt/loxberry/templates/system%%''  
-|''%%LBSDATA%%''    |System-Data-Verzeichnis                        |''%%/opt/loxberry%%''''%%/data/system%%''            +| ''%%LBSDATA%%''  | System-Data-Verzeichnis   | ''%%/opt/loxberry/data/system%%''  
-|''%%LBSLOG%%''     |System-Log-Verzeichnis                         |''%%/opt/loxberry%%''''%%/log/system %%''            +| ''%%LBSLOG%%''  | System-Log-Verzeichnis   | ''%%/opt/loxberry/log/system %%''  
-|''%%LBSTMPFSLOG%%''|System-Log-Verzeichnis (tmpfs)                 |''%%/opt/loxberry%%''''%%/log/system_tmpfs%%''       +| ''%%LBSTMPFSLOG%%'' | System-Log-Verzeichnis (tmpfs)  | ''%%/opt/loxberry/log/system_tmpfs%%''  
-|''%%LBSCONFIG %%'' |System-Config-Verzeichnis                      |''%%/opt/loxberry%%''''%%/config/system%%''          +| ''%%LBSCONFIG %%'' | System-Config-Verzeichnis  | ''%%/opt/loxberry/config/system%%''  
-|''%%LBSBIN%%''     |System-Bin-Verzeichnis **(ab LB 1.2.2)**       |''%%/opt/loxberry%%''''%%/sbin%%''                   +| ''%%LBSBIN%%''  | System-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/sbin%%''  
-|''%%LBSSBIN%%''    |System-Sbin-Verzeichnis **(ab LB 1.2.2)**      |''%%/opt/loxberry%%''''%%/bin%%''                    | +| ''%%LBSSBIN%%''  | System-Sbin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin%%''  |
- +
- +
  
 Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]] Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]]
Zeile 618: Zeile 498:
 Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden: Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden:
  
-\\ +| Logfile Tags | Hervorhebung  
- +| <OK>  | Grün  
- +| <INFO>  | Schwarz/Neutral | 
-|Logfile Tags|Hervorhebung   +| <WARNING>  | Rot  
-|<OK>        |Grün           +| <ERROR>  | Rot  
-|<INFO>      |Schwarz/Neutral| +| <FAIL>  | Rot  |
-|<WARNING>   |Rot            +
-|<ERROR>     |Rot            +
-|<FAIL>      |Rot            | +
- +
- +
-\\ +
  
 Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern. Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern.
  
-\\+**Beispiel: Datei preinstall.sh**
  
- +<code bash>
-**Beispiel: Datei preinstall.sh** Quelle erweitern +
- +
-<code syntaxhighlighter-pre>+
 #!/bin/bash #!/bin/bash
  
Zeile 702: Zeile 572:
 exit 0 exit 0
 </code> </code>
- 
- 
- 
-\\ 
- 
  
 ====== Rootverzeichnis - Datei: postinstall.sh    OPTIONAL ====== ====== Rootverzeichnis - Datei: postinstall.sh    OPTIONAL ======
  
-Bei der Datei //postinstall.sh// handelt es sich um ein Shell-Skript, welches nach der Installation ausgeführt wird. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird nach der Installation als Benutzer "loxberry" ausgeführt. Es kann verwendet werden um Dinge nach der Installation aufzubereiten oder Kommandos auf dem System auszuführen.+Bei der Datei //postinstall.sh// handelt es sich um ein Shell-Skript, welches nach der Installation ausgeführt wird. Ab LoxBerry 3.0 sind auch andere Dateiendungen erlaubt (zum Beispiel .pl oder .py - in diesem Fall muss der Shebang im Skript korrekt gesetzt sein). Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird nach der Installation als Benutzer "loxberry" ausgeführt. Es kann verwendet werden um Dinge nach der Installation aufzubereiten oder Kommandos auf dem System auszuführen.
  
 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  | Bash-Variable | 
- +| 1  | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%'' | ''%%$1%%''  
- +| 2  | Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$2%%''  
-|Nr.|Inhalt                                                                                                                                                                                                                                |Bash-Variable| +| 3  | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]]) | ''%%$3%%''  
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 4  | Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$4%%''  
-|2  |Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])               |''%%$2%%''   +| 5  | LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%'' | ''%%$5%%''  
-|3  |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])|''%%$3%%''   +| 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%%''  |
-|4  |Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])                                    |''%%$4%%''   +
-|5  |LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%''                                                                                                                                                                          |''%%$5%%''   +
-|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%%''   | +
- +
- +
-\\ +
  
 Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]] Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]]
Zeile 735: Zeile 593:
 ==== Plugin-Pfade ==== ==== Plugin-Pfade ====
  
-|Variable           |Bedeutung                                  |LoxBerry-Original                                         +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBHOMEDIR%%''  |Homeverzeichnis von LoxBerry               |''%%/opt/loxberry%%''                                     +| ''%%LBHOMEDIR%%''  | Homeverzeichnis von LoxBerry  | ''%%/opt/loxberry%%''  
-|''%%LBPHTMLAUTH%%''|Plugin-HTML-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/htmlauth/plugins%%''+| ''%%LBPHTMLAUTH%%'' | Plugin-HTML-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/htmlauth/plugins%%''
-|''%%LBPHTML%%''    |Plugin-HTML-Verzeichnis (ohne Auth)        |''%%/opt/loxberry/%%''''%%webfrontend/html/plugins%%''    +| ''%%LBPHTML%%''  | Plugin-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/plugins%%''  
-|''%%LBPTEMPL%%''   |Plugin-Template-Verzeichnis                |''%%/opt/loxberry/%%''''%%templates/plugins%%''           +| ''%%LBPTEMPL%%''  | Plugin-Template-Verzeichnis  | ''%%/opt/loxberry/templates/plugins%%''  
-|''%%LBPDATA%%''    |Plugin-Data-Verzeichnis                    |''%%/opt/loxberry/%%''''%%data/plugins%%''                +| ''%%LBPDATA%%''  | Plugin-Data-Verzeichnis  | ''%%/opt/loxberry/data/plugins%%''  
-|''%%LBPLOG%%''     |Plugin-Log-Verzeichnis                     |''%%/opt/loxberry%%''''%%/log/plugins%%''                 +| ''%%LBPLOG%%''  | Plugin-Log-Verzeichnis  | ''%%/opt/loxberry/log/plugins%%''  
-|''%%LBPCONFIG%%''  |Plugin-Config-Verzeichnis                  |''%%/opt/loxberry%%''''%%/config/plugins%%''              +| ''%%LBPCONFIG%%''  | Plugin-Config-Verzeichnis  | ''%%/opt/loxberry/config/plugins%%''  
-|''%%LBPBIN%%''     |Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**   |''%%/opt/loxberry%%''''%%/bin/plugins%%''                 | +| ''%%LBPBIN%%''  | Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin/plugins%%''  |
  
 ==== System-Pfade ==== ==== System-Pfade ====
  
-|Variable           |Bedeutung                                      |LoxBerry-Original                                    +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBSHTMLAUTH%%''|System-HTMLAUTH-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/cgi/system%%''+| ''%%LBSHTMLAUTH%%'' | System-HTMLAUTH-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/cgi/system%%''
-|''%%LBSHTML%%''    |System-HTML-Verzeichnis (ohne Auth)            |''%%/opt/loxberry%%''''%%/webfrontend/html/system%%''+| ''%%LBSHTML%%''  | System-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/system%%''
-|''%%LBSTEMPL%%''   |System-Template-Verzeichnis                    |''%%/opt/loxberry%%''''%%/templates/system%%''       +| ''%%LBSTEMPL%%''  | System-Template-Verzeichnis   | ''%%/opt/loxberry/templates/system%%''  
-|''%%LBSDATA%%''    |System-Data-Verzeichnis                        |''%%/opt/loxberry%%''''%%/data/system%%''            +| ''%%LBSDATA%%''  | System-Data-Verzeichnis   | ''%%/opt/loxberry/data/system%%''  
-|''%%LBSLOG%%''     |System-Log-Verzeichnis                         |''%%/opt/loxberry%%''''%%/log/system %%''            +| ''%%LBSLOG%%''  | System-Log-Verzeichnis   | ''%%/opt/loxberry/log/system %%''  
-|''%%LBSTMPFSLOG%%''|System-Log-Verzeichnis (tmpfs)                 |''%%/opt/loxberry%%''''%%/log/system_tmpfs%%''       +| ''%%LBSTMPFSLOG%%'' | System-Log-Verzeichnis (tmpfs)  | ''%%/opt/loxberry/log/system_tmpfs%%''  
-|''%%LBSCONFIG %%'' |System-Config-Verzeichnis                      |''%%/opt/loxberry%%''''%%/config/system%%''          +| ''%%LBSCONFIG %%'' | System-Config-Verzeichnis  | ''%%/opt/loxberry/config/system%%''  
-|''%%LBSBIN%%''     |System-Bin-Verzeichnis **(ab LB 1.2.2)**       |''%%/opt/loxberry%%''''%%/sbin%%''                   +| ''%%LBSBIN%%''  | System-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/sbin%%''  
-|''%%LBSSBIN%%''    |System-Sbin-Verzeichnis **(ab LB 1.2.2)**      |''%%/opt/loxberry%%''''%%/bin%%''                    | +| ''%%LBSSBIN%%''  | System-Sbin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin%%''  |
- +
- +
  
 Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]] Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]]
Zeile 766: Zeile 620:
 Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden: Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden:
  
-\\ +| Logfile Tags | Hervorhebung  
- +| <OK>  | Grün  
- +| <INFO>  | Schwarz/Neutral | 
-|Logfile Tags|Hervorhebung   +| <WARNING>  | Rot  
-|<OK>        |Grün           +| <ERROR>  | Rot  
-|<INFO>      |Schwarz/Neutral| +| <FAIL>  | Rot  |
-|<WARNING>   |Rot            +
-|<ERROR>     |Rot            +
-|<FAIL>      |Rot            | +
- +
- +
-\\ +
  
 Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern. Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern.
  
-\\+**Beispiel: Datei postinstall.sh**
  
- +<code bash>
-**Beispiel: Datei postinstall.sh** Quelle erweitern +
- +
-<code syntaxhighlighter-pre>+
 #!/bin/bash #!/bin/bash
  
Zeile 851: Zeile 695:
 exit 0 exit 0
 </code> </code>
- 
- 
- 
-\\ 
- 
  
 ====== Rootverzeichnis - Datei: postupgrade.sh    OPTIONAL ====== ====== Rootverzeichnis - Datei: postupgrade.sh    OPTIONAL ======
  
-Bei der Datei //postupgrade.sh// handelt es sich um ein Shell-Skript, welches nach der Installation und nur im Falle eines Plugin-Updates ausgeführt wird. D. h. das Plugin muss schon auf dem System existieren, damit dieses Skript nach der Installation ausgeführt wird. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird nach einem Update als Benutzer "loxberry" ausgeführt. Es kann verwendet werden, um im Falle eines Updates Konfigurationsdateien des Plugins nach der Installation wieder zurückzuspielen. +Bei der Datei //postupgrade.sh// handelt es sich um ein Shell-Skript, welches nach der Installation und nur im Falle eines Plugin-Updates ausgeführt wird. Ab LoxBerry 3.0 sind auch andere Dateiendungen erlaubt (zum Beispiel .pl oder .py - in diesem Fall muss der Shebang im Skript korrekt gesetzt sein). D. h. das Plugin muss schon auf dem System existieren, damit dieses Skript nach der Installation ausgeführt wird. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird nach einem Update als Benutzer "loxberry" ausgeführt. Es kann verwendet werden, um im Falle eines Updates Konfigurationsdateien des Plugins nach der Installation wieder zurückzuspielen. 
  
 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  | Bash-Variable | 
- +| 1  | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%'' | ''%%$1%%''  
- +| 2  | Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$2%%''  
-|Nr.|Inhalt                                                                                                                                                                                                                                |Bash-Variable| +| 3  | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]]) | ''%%$3%%''  
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 4  | Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$4%%''  
-|2  |Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])               |''%%$2%%''   +| 5  | LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%'' | ''%%$5%%''  
-|3  |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])|''%%$3%%''   +| 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%%''  |
-|4  |Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])                                    |''%%$4%%''   +
-|5  |LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%''                                                                                                                                                                          |''%%$5%%''   +
-|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%%''   | +
- +
- +
-\\ +
  
 Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]] Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]]
Zeile 884: Zeile 716:
 ==== Plugin-Pfade ==== ==== Plugin-Pfade ====
  
-|Variable           |Bedeutung                                  |LoxBerry-Original                                         +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBHOMEDIR%%''  |Homeverzeichnis von LoxBerry               |''%%/opt/loxberry%%''                                     +| ''%%LBHOMEDIR%%''  | Homeverzeichnis von LoxBerry  | ''%%/opt/loxberry%%''  
-|''%%LBPHTMLAUTH%%''|Plugin-HTML-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/htmlauth/plugins%%''+| ''%%LBPHTMLAUTH%%'' | Plugin-HTML-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/htmlauth/plugins%%''
-|''%%LBPHTML%%''    |Plugin-HTML-Verzeichnis (ohne Auth)        |''%%/opt/loxberry/%%''''%%webfrontend/html/plugins%%''    +| ''%%LBPHTML%%''  | Plugin-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/plugins%%''  
-|''%%LBPTEMPL%%''   |Plugin-Template-Verzeichnis                |''%%/opt/loxberry/%%''''%%templates/plugins%%''           +| ''%%LBPTEMPL%%''  | Plugin-Template-Verzeichnis  | ''%%/opt/loxberry/templates/plugins%%''  
-|''%%LBPDATA%%''    |Plugin-Data-Verzeichnis                    |''%%/opt/loxberry/%%''''%%data/plugins%%''                +| ''%%LBPDATA%%''  | Plugin-Data-Verzeichnis  | ''%%/opt/loxberry/data/plugins%%''  
-|''%%LBPLOG%%''     |Plugin-Log-Verzeichnis                     |''%%/opt/loxberry%%''''%%/log/plugins%%''                 +| ''%%LBPLOG%%''  | Plugin-Log-Verzeichnis  | ''%%/opt/loxberry/log/plugins%%''  
-|''%%LBPCONFIG%%''  |Plugin-Config-Verzeichnis                  |''%%/opt/loxberry%%''''%%/config/plugins%%''              +| ''%%LBPCONFIG%%''  | Plugin-Config-Verzeichnis  | ''%%/opt/loxberry/config/plugins%%''  
-|''%%LBPBIN%%''     |Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**   |''%%/opt/loxberry%%''''%%/bin/plugins%%''                 | +| ''%%LBPBIN%%''  | Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin/plugins%%''  |
  
 ==== System-Pfade ==== ==== System-Pfade ====
  
-|Variable           |Bedeutung                                      |LoxBerry-Original                                    +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBSHTMLAUTH%%''|System-HTMLAUTH-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/cgi/system%%''+| ''%%LBSHTMLAUTH%%'' | System-HTMLAUTH-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/cgi/system%%''
-|''%%LBSHTML%%''    |System-HTML-Verzeichnis (ohne Auth)            |''%%/opt/loxberry%%''''%%/webfrontend/html/system%%''+| ''%%LBSHTML%%''  | System-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/system%%''
-|''%%LBSTEMPL%%''   |System-Template-Verzeichnis                    |''%%/opt/loxberry%%''''%%/templates/system%%''       +| ''%%LBSTEMPL%%''  | System-Template-Verzeichnis   | ''%%/opt/loxberry/templates/system%%''  
-|''%%LBSDATA%%''    |System-Data-Verzeichnis                        |''%%/opt/loxberry%%''''%%/data/system%%''            +| ''%%LBSDATA%%''  | System-Data-Verzeichnis   | ''%%/opt/loxberry/data/system%%''  
-|''%%LBSLOG%%''     |System-Log-Verzeichnis                         |''%%/opt/loxberry%%''''%%/log/system %%''            +| ''%%LBSLOG%%''  | System-Log-Verzeichnis   | ''%%/opt/loxberry/log/system %%''  
-|''%%LBSTMPFSLOG%%''|System-Log-Verzeichnis (tmpfs)                 |''%%/opt/loxberry%%''''%%/log/system_tmpfs%%''       +| ''%%LBSTMPFSLOG%%'' | System-Log-Verzeichnis (tmpfs)  | ''%%/opt/loxberry/log/system_tmpfs%%''  
-|''%%LBSCONFIG %%'' |System-Config-Verzeichnis                      |''%%/opt/loxberry%%''''%%/config/system%%''          +| ''%%LBSCONFIG %%'' | System-Config-Verzeichnis  | ''%%/opt/loxberry/config/system%%''  
-|''%%LBSBIN%%''     |System-Bin-Verzeichnis **(ab LB 1.2.2)**       |''%%/opt/loxberry%%''''%%/sbin%%''                   +| ''%%LBSBIN%%''  | System-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/sbin%%''  
-|''%%LBSSBIN%%''    |System-Sbin-Verzeichnis **(ab LB 1.2.2)**      |''%%/opt/loxberry%%''''%%/bin%%''                    | +| ''%%LBSSBIN%%''  | System-Sbin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin%%''  |
- +
- +
  
 Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]] Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]]
Zeile 915: Zeile 743:
 Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden: Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden:
  
-\\ +| Logfile Tags | Hervorhebung  
- +| <OK>  | Grün  
- +| <INFO>  | Schwarz/Neutral | 
-|Logfile Tags|Hervorhebung   +| <WARNING>  | Rot  
-|<OK>        |Grün           +| <ERROR>  | Rot  
-|<INFO>      |Schwarz/Neutral| +| <FAIL>  | Rot  |
-|<WARNING>   |Rot            +
-|<ERROR>     |Rot            +
-|<FAIL>      |Rot            | +
- +
- +
-\\ +
  
 Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern. Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern.
  
-\\+**Beispiel: Datei preupgrade.sh**
  
- +<code bash>
-**Beispiel: Datei preupgrade.sh** Quelle erweitern +
- +
-<code syntaxhighlighter-pre>+
 #!/bin/bash #!/bin/bash
  
Zeile 1001: Zeile 819:
 exit 0 exit 0
 </code> </code>
- 
- 
- 
-    
  
 ====== Rootverzeichnis - Datei: postroot.sh    OPTIONAL ====== ====== Rootverzeichnis - Datei: postroot.sh    OPTIONAL ======
  
-Bei der Datei //postroot.sh// handelt es sich um ein Shell-Skript, welches nach der Installation ausgeführt wird. Die Datei wird mit Root-Rechten ausgeführt, hat also umfangreiche Rechte im System. Sie sollte nur verwendet werden, wenn unbedingt Kommandos als User root ausgeführt werden müssen. Ansonsten sollte man das Skript "postinstall.sh" verwenden (siehe oben). Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird nach der Installation als Benutzer "root" ausgeführt. Es kann verwendet werden um Dinge nach der Installation aufzubereiten oder Kommandos auf dem System auszuführen.+Bei der Datei //postroot.sh// handelt es sich um ein Shell-Skript, welches nach der Installation ausgeführt wird. Ab LoxBerry 3.0 sind auch andere Dateiendungen erlaubt (zum Beispiel .pl oder .py - in diesem Fall muss der Shebang im Skript korrekt gesetzt sein). Die Datei wird mit Root-Rechten ausgeführt, hat also umfangreiche Rechte im System. Sie sollte nur verwendet werden, wenn unbedingt Kommandos als User root ausgeführt werden müssen. Ansonsten sollte man das Skript "postinstall.sh" verwenden (siehe oben). Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Das Skript wird nach der Installation als Benutzer "root" ausgeführt. Es kann verwendet werden um Dinge nach der Installation aufzubereiten oder Kommandos auf dem System auszuführen.
  
 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  | Bash-Variable | 
- +| 1  | Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%'' | ''%%$1%%''  
- +| 2  | Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$2%%''  
-|Nr.|Inhalt                                                                                                                                                                                                                                |Bash-Variable| +| 3  | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]]) | ''%%$3%%''  
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 4  | Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$4%%''  
-|2  |Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])               |''%%$2%%''   +| 5  | LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%'' | ''%%$5%%''  
-|3  |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])|''%%$3%%''   +| 6  | Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv  | ''%%$6%%''  |
-|4  |Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])                                    |''%%$4%%''   +
-|5  |LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%''                                                                                                                                                                          |''%%$5%%''   +
-|6  |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv                                                                                    |''%%$6%%''   | +
- +
- +
-\\ +
  
 Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]] Es stehen sämtliche LoxBerry Environment-Variablen zur Verfügung: [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|Systemweite Pfade in Environmentvariablen]]
Zeile 1033: Zeile 840:
 ==== Plugin-Pfade ==== ==== Plugin-Pfade ====
  
-|Variable           |Bedeutung                                  |LoxBerry-Original                                         +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBHOMEDIR%%''  |Homeverzeichnis von LoxBerry               |''%%/opt/loxberry%%''                                     +| ''%%LBHOMEDIR%%''  | Homeverzeichnis von LoxBerry  | ''%%/opt/loxberry%%''  
-|''%%LBPHTMLAUTH%%''|Plugin-HTML-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/htmlauth/plugins%%''+| ''%%LBPHTMLAUTH%%'' | Plugin-HTML-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/htmlauth/plugins%%''
-|''%%LBPHTML%%''    |Plugin-HTML-Verzeichnis (ohne Auth)        |''%%/opt/loxberry/%%''''%%webfrontend/html/plugins%%''    +| ''%%LBPHTML%%''  | Plugin-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/plugins%%''  
-|''%%LBPTEMPL%%''   |Plugin-Template-Verzeichnis                |''%%/opt/loxberry/%%''''%%templates/plugins%%''           +| ''%%LBPTEMPL%%''  | Plugin-Template-Verzeichnis  | ''%%/opt/loxberry/templates/plugins%%''  
-|''%%LBPDATA%%''    |Plugin-Data-Verzeichnis                    |''%%/opt/loxberry/%%''''%%data/plugins%%''                +| ''%%LBPDATA%%''  | Plugin-Data-Verzeichnis  | ''%%/opt/loxberry/data/plugins%%''  
-|''%%LBPLOG%%''     |Plugin-Log-Verzeichnis                     |''%%/opt/loxberry%%''''%%/log/plugins%%''                 +| ''%%LBPLOG%%''  | Plugin-Log-Verzeichnis  | ''%%/opt/loxberry/log/plugins%%''  
-|''%%LBPCONFIG%%''  |Plugin-Config-Verzeichnis                  |''%%/opt/loxberry%%''''%%/config/plugins%%''              +| ''%%LBPCONFIG%%''  | Plugin-Config-Verzeichnis  | ''%%/opt/loxberry/config/plugins%%''  
-|''%%LBPBIN%%''     |Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**   |''%%/opt/loxberry%%''''%%/bin/plugins%%''                 | +| ''%%LBPBIN%%''  | Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin/plugins%%''  |
  
 ==== System-Pfade ==== ==== System-Pfade ====
  
-|Variable           |Bedeutung                                      |LoxBerry-Original                                    +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBSHTMLAUTH%%''|System-HTMLAUTH-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/cgi/system%%''+| ''%%LBSHTMLAUTH%%'' | System-HTMLAUTH-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/cgi/system%%''
-|''%%LBSHTML%%''    |System-HTML-Verzeichnis (ohne Auth)            |''%%/opt/loxberry%%''''%%/webfrontend/html/system%%''+| ''%%LBSHTML%%''  | System-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/system%%''
-|''%%LBSTEMPL%%''   |System-Template-Verzeichnis                    |''%%/opt/loxberry%%''''%%/templates/system%%''       +| ''%%LBSTEMPL%%''  | System-Template-Verzeichnis   | ''%%/opt/loxberry/templates/system%%''  
-|''%%LBSDATA%%''    |System-Data-Verzeichnis                        |''%%/opt/loxberry%%''''%%/data/system%%''            +| ''%%LBSDATA%%''  | System-Data-Verzeichnis   | ''%%/opt/loxberry/data/system%%''  
-|''%%LBSLOG%%''     |System-Log-Verzeichnis                         |''%%/opt/loxberry%%''''%%/log/system %%''            +| ''%%LBSLOG%%''  | System-Log-Verzeichnis   | ''%%/opt/loxberry/log/system %%''  
-|''%%LBSTMPFSLOG%%''|System-Log-Verzeichnis (tmpfs)                 |''%%/opt/loxberry%%''''%%/log/system_tmpfs%%''       +| ''%%LBSTMPFSLOG%%'' | System-Log-Verzeichnis (tmpfs)  | ''%%/opt/loxberry/log/system_tmpfs%%''  
-|''%%LBSCONFIG %%'' |System-Config-Verzeichnis                      |''%%/opt/loxberry%%''''%%/config/system%%''          +| ''%%LBSCONFIG %%'' | System-Config-Verzeichnis  | ''%%/opt/loxberry/config/system%%''  
-|''%%LBSBIN%%''     |System-Bin-Verzeichnis **(ab LB 1.2.2)**       |''%%/opt/loxberry%%''''%%/sbin%%''                   +| ''%%LBSBIN%%''  | System-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/sbin%%''  
-|''%%LBSSBIN%%''    |System-Sbin-Verzeichnis **(ab LB 1.2.2)**      |''%%/opt/loxberry%%''''%%/bin%%''                    | +| ''%%LBSSBIN%%''  | System-Sbin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin%%''  |
- +
- +
  
 Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]] Die Auflistung von REPLACExxx Tags zum automatischen Ersetzen der Verzeichnisse während der Installation findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]]
Zeile 1064: Zeile 867:
 Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden: Alle Ausgaben auf STDOUT und STDERR des Skriptes werden in die Logdatei der Plugininstallation geschrieben. So kann man Statusmeldungen mittels "''%%echo"%%'' absetzen. Um die Meldungen im Logfile farblich hervorzuheben kann und sollte man die folgenden einleitenden Tags am Zeilenanfang des Logeintrags verwenden:
  
-\\ +| Logfile Tags | Hervorhebung  
- +| <OK>  | Grün  
- +| <INFO>  | Schwarz/Neutral | 
-|Logfile Tags|Hervorhebung   +| <WARNING>  | Rot  
-|<OK>        |Grün           +| <ERROR>  | Rot  
-|<INFO>      |Schwarz/Neutral| +| <FAIL>  | Rot  |
-|<WARNING>   |Rot            +
-|<ERROR>     |Rot            +
-|<FAIL>      |Rot            | +
- +
- +
-\\ +
  
 Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern. Das Skript muss mit einem Exit-Status von "0" (Null) enden, damit es als erfolgreich beendet wird. Bei einem Exit-Statis von 1 wird ein Fehler ausgegeben, aber die Installation wird fortgesetzt. Bei einem Exit-Status > 1 wird die weitere Installation des Plugins abgebrochen. Benötigt man das Skript nicht, so  ist es ratsam die Datei zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen, um die Installation nicht unnötig zu verzögern.
  
-\\+**Beispiel: Datei postroot.sh** 
  
- +<code bash>
-**Beispiel: Datei postroot.sh** Quelle erweitern +
- +
-<code syntaxhighlighter-pre>+
 #!/bin/bash #!/bin/bash
  
Zeile 1151: Zeile 944:
 exit 0 exit 0
 </code> </code>
- 
- 
- 
-    
  
 ====== Unterverzeichnis: config    OPTIONAL ====== ====== Unterverzeichnis: config    OPTIONAL ======
  
 Alle Dateien aus diesem Verzeichnis werden im System unter ///opt/loxberry/config/plugins/NAME/// installiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]). In diesem Verzeichnis sollten Konfigurstionsdateien abgelegt werden, die vom Plugin verwendet werden. Benötigt das Plugin keine Konfigurationsdateien, so kann dieses Verzeichnis auch leer sein. Alle Dateien aus diesem Verzeichnis werden im System unter ///opt/loxberry/config/plugins/NAME/// installiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]). In diesem Verzeichnis sollten Konfigurstionsdateien abgelegt werden, die vom Plugin verwendet werden. Benötigt das Plugin keine Konfigurationsdateien, so kann dieses Verzeichnis auch leer sein.
- 
-   
  
 ====== Unterverzeichnis: bin    OPTIONAL ====== ====== Unterverzeichnis: bin    OPTIONAL ======
  
 Alle Dateien aus diesem Verzeichnis werden im System unter ///opt/loxberry/bin/plugins/NAME/// installiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]). In diesem Verzeichnis sollten ausführbare Skripte und Binaries abgelegt werden, die vom Plugin verwendet werden und __nicht__ über das Webfrontend erreichbar sein sollen. Man kann hier z. B. Skripte ablegen, die aus einem Cronjob heraus aufgerufen werden. Benötigt das Plugin keine entsprechenden Skripte, so kann dieses Verzeichnis auch leer sein. Alle Dateien aus diesem Verzeichnis werden im System unter ///opt/loxberry/bin/plugins/NAME/// installiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]). In diesem Verzeichnis sollten ausführbare Skripte und Binaries abgelegt werden, die vom Plugin verwendet werden und __nicht__ über das Webfrontend erreichbar sein sollen. Man kann hier z. B. Skripte ablegen, die aus einem Cronjob heraus aufgerufen werden. Benötigt das Plugin keine entsprechenden Skripte, so kann dieses Verzeichnis auch leer sein.
- 
-   
  
 ====== Unterverzeichnis: templates    OPTIONAL ====== ====== Unterverzeichnis: templates    OPTIONAL ======
Zeile 1177: Zeile 962:
  
 PHP: [[entwickler:php_develop_plugins_with_php:php_loxberry_sdk_documentation:php_module_loxberry_webphp:php_functions_to_create_your_webpage_with_loxberry_design|PHP functions to create your webpage with LoxBerry design]] PHP: [[entwickler:php_develop_plugins_with_php:php_loxberry_sdk_documentation:php_module_loxberry_webphp:php_functions_to_create_your_webpage_with_loxberry_design|PHP functions to create your webpage with LoxBerry design]]
- 
-   
  
 ====== Unterverzeichnis: cron    OPTIONAL ====== ====== Unterverzeichnis: cron    OPTIONAL ======
Zeile 1184: 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: Linefeed, LF) handeln, die in der Shell ausgeführt werden können. Der Name der Datei entscheidet, für welchen Cronjob die Datei installiert wird. Die Cronjobs werden als Benutzer "loxberry" ausgeführt. Bei der Installation wird das Skript umbenannt in den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]) und im korrekten Unterverzeichnis unter ///opt/loxberry/system/cron// installiert.  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: Linefeed, LF) handeln, die in der Shell ausgeführt werden können. Der Name der Datei entscheidet, für welchen Cronjob die Datei installiert wird. Die Cronjobs werden als Benutzer "loxberry" ausgeführt. Bei der Installation wird das Skript umbenannt in den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]) und im korrekten Unterverzeichnis unter ///opt/loxberry/system/cron// installiert. 
  
-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, die im System nach der Installation nach ''%%$lbhomedir/system/cron/cron.d/<pluginname>%%'' kopiert wird. Es existieren zahlreiche HOWTOs, wie diese Dateien aufgebaut sind. Die crontab-Manpage findet man hier: http://man7.org/linux/man-pages/man5/crontab.5.html+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, die im System nach der Installation nach ''%%$lbhomedir/system/cron/cron.d/<pluginname>%%'' kopiert wird. Es existieren zahlreiche HOWTOs, wie diese Dateien aufgebaut sind. Die crontab-Manpage findet man hier: [[http://man7.org/linux/man-pages/man5/crontab.5.html]]
  
 Wichtig ist, dass die Syntax analog der Datei ///etc/crontab// bzw. ///etc/cron.d //erfolgen muss, d. h. es muss der ausführende User mit angegeben werden. Hier ist ausschließlich der User "loxberry" erlaubt. Der folgende Wiki-Artikel erklärt, wie die Datei verwendet werden muss: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:eigene_cronjobs_im_plugin_code_pflegen|Eigene Cronjobs im Plugin-Code pflegen]] Wichtig ist, dass die Syntax analog der Datei ///etc/crontab// bzw. ///etc/cron.d //erfolgen muss, d. h. es muss der ausführende User mit angegeben werden. Hier ist ausschließlich der User "loxberry" erlaubt. Der folgende Wiki-Artikel erklärt, wie die Datei verwendet werden muss: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:eigene_cronjobs_im_plugin_code_pflegen|Eigene Cronjobs im Plugin-Code pflegen]]
- 
-\\ 
- 
  
 Folgende Dateien bzw. Cronjobs stehen zur Verfügung:  Folgende Dateien bzw. Cronjobs stehen zur Verfügung: 
  
-|Cronjob                                      |Dateiname           +| Cronjob  | Dateiname  
-|Vollwertige Crontab                          |''%%crontab%%''     +| Vollwertige Crontab  | ''%%crontab%%''  
-|Minütlich                                    |''%%cron.01min%%'' +| Minütlich  | ''%%cron.01min%%'' 
-|Alle 3 Minuten                               |''%%cron.03min%%'' +| Alle 3 Minuten  | ''%%cron.03min%%'' 
-|Alle 5 Minuten                               |''%%cron.05min%%'' +| Alle 5 Minuten  | ''%%cron.05min%%'' 
-|Alle 10 Minuten                              |''%%cron.10min%%'' +| Alle 10 Minuten  | ''%%cron.10min%%'' 
-|Alle 15 Minuten                              |''%%cron.15min%%'' +| Alle 15 Minuten  | ''%%cron.15min%%'' 
-|Alle 30 Minuten                              |''%%cron.30min%%'' +| Alle 30 Minuten  | ''%%cron.30min%%'' 
-|Stündlich                                    |''%%cron.hourly%%''+| Stündlich  | ''%%cron.hourly%%''
-|Täglich                                      |''%%cron.daily%%'' +| Täglich  | ''%%cron.daily%%'' 
-|Wöchentlich                                  |''%%cron.weekly%%''+| Wöchentlich  | ''%%cron.weekly%%''
-|Monatlich                                    |''%%cron.monthly%%''+| Monatlich  | ''%%cron.monthly%%''
-|Jährlich                                     |''%%cron.yearly%%''+| Jährlich  | ''%%cron.yearly%%''
-|Bei Reboot //(Achtung, ab LoxBerry **2.0**)//|''%%cron.reboot%%'' | +| Bei Reboot //(Achtung, ab LoxBerry **2.0**)// | ''%%cron.reboot%%'' |
  
 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 1216: Zeile 995:
  
 Hier können sämtliche Dateien, die das Plugin zusätzlich benötigt, abgelegt werden. Denkbar sind zum Beispiel ASCII oder auch Binary-Dateien. Auch zur Zwischenspeicherung kann dieses Verzeichnis später vom Plugin verwendet werden (Cache-Dateien oder ähnliches). Bei der Installation werden alle Dateien aus diesem Verzeichnis nach ///opt/loxberry/data/plugins/NAME// installiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]). Hier können sämtliche Dateien, die das Plugin zusätzlich benötigt, abgelegt werden. Denkbar sind zum Beispiel ASCII oder auch Binary-Dateien. Auch zur Zwischenspeicherung kann dieses Verzeichnis später vom Plugin verwendet werden (Cache-Dateien oder ähnliches). Bei der Installation werden alle Dateien aus diesem Verzeichnis nach ///opt/loxberry/data/plugins/NAME// installiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]).
- 
-   
  
 ====== Unterverzeichnis: webfrontend/htmlauth   PFLICHT ====== ====== Unterverzeichnis: webfrontend/htmlauth   PFLICHT ======
Zeile 1224: Zeile 1001:
  
 Die Dateien werden bei der Installation ins Verzeichnis ///opt/loxberry/webfrontend/htmlauth/plugins/NAME// kopiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]). Die Dateien werden bei der Installation ins Verzeichnis ///opt/loxberry/webfrontend/htmlauth/plugins/NAME// kopiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]).
- 
-   
  
 ====== Unterverzeichnis: webfrontend/html    OPTIONAL ====== ====== Unterverzeichnis: webfrontend/html    OPTIONAL ======
Zeile 1232: Zeile 1007:
  
 Die Dateien werden bei der Installation ins Verzeichnis ///opt/loxberry/webfrontend/htmlauth/plugins/NAME// kopiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]). Die Dateien werden bei der Installation ins Verzeichnis ///opt/loxberry/webfrontend/htmlauth/plugins/NAME// kopiert. NAME wird dabei ersetzt durch den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]).
- 
-   
  
 ====== Unterverzeichnis: icons    PFLICHT ====== ====== Unterverzeichnis: icons    PFLICHT ======
Zeile 1241: Zeile 1014:
 Bitte verwendet Icons im Stil der anderen LoxBerry-Icons, um ein einheitliches Aussehen des Menüs zu erhalten. Passende Icons können hier kostenlos heruntergeladen werden:  Bitte verwendet Icons im Stil der anderen LoxBerry-Icons, um ein einheitliches Aussehen des Menüs zu erhalten. Passende Icons können hier kostenlos heruntergeladen werden: 
  
-  * Vollständige Icon-Library: http://download.loxberry.de/development/icons/+  * Vollständige Icon-Library: [[http://download.loxberry.de/development/icons/]]
   * Leere Vorlage für eigene Gestaltung: {{entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:1205241483.zip|Blank_icon.zip}}   * Leere Vorlage für eigene Gestaltung: {{entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:1205241483.zip|Blank_icon.zip}}
  
 Werden keine Icons durch das Plugin zur Verfügung gestellt, verwendet der LoxBerry Default-Icons. Werden keine Icons durch das Plugin zur Verfügung gestellt, verwendet der LoxBerry Default-Icons.
- 
-\\ 
- 
  
 ====== Unterverzeichnis: daemon    OPTIONAL ====== ====== Unterverzeichnis: daemon    OPTIONAL ======
Zeile 1263: Zeile 1033:
 ==== Plugin-Pfade ==== ==== Plugin-Pfade ====
  
-|Variable           |Bedeutung                                  |LoxBerry-Original                                         +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBHOMEDIR%%''  |Homeverzeichnis von LoxBerry               |''%%/opt/loxberry%%''                                     +| ''%%LBHOMEDIR%%''  | Homeverzeichnis von LoxBerry  | ''%%/opt/loxberry%%''  
-|''%%LBPHTMLAUTH%%''|Plugin-HTML-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/htmlauth/plugins%%''+| ''%%LBPHTMLAUTH%%'' | Plugin-HTML-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/htmlauth/plugins%%''
-|''%%LBPHTML%%''    |Plugin-HTML-Verzeichnis (ohne Auth)        |''%%/opt/loxberry/%%''''%%webfrontend/html/plugins%%''    +| ''%%LBPHTML%%''  | Plugin-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/plugins%%''  
-|''%%LBPTEMPL%%''   |Plugin-Template-Verzeichnis                |''%%/opt/loxberry/%%''''%%templates/plugins%%''           +| ''%%LBPTEMPL%%''  | Plugin-Template-Verzeichnis  | ''%%/opt/loxberry/templates/plugins%%''  
-|''%%LBPDATA%%''    |Plugin-Data-Verzeichnis                    |''%%/opt/loxberry/%%''''%%data/plugins%%''                +| ''%%LBPDATA%%''  | Plugin-Data-Verzeichnis  | ''%%/opt/loxberry/data/plugins%%''  
-|''%%LBPLOG%%''     |Plugin-Log-Verzeichnis                     |''%%/opt/loxberry%%''''%%/log/plugins%%''                 +| ''%%LBPLOG%%''  | Plugin-Log-Verzeichnis  | ''%%/opt/loxberry/log/plugins%%''  
-|''%%LBPCONFIG%%''  |Plugin-Config-Verzeichnis                  |''%%/opt/loxberry%%''''%%/config/plugins%%''              +| ''%%LBPCONFIG%%''  | Plugin-Config-Verzeichnis  | ''%%/opt/loxberry/config/plugins%%''  
-|''%%LBPBIN%%''     |Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**   |''%%/opt/loxberry%%''''%%/bin/plugins%%''                 | +| ''%%LBPBIN%%''  | Plugin-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin/plugins%%''  |
  
 ==== System-Pfade ==== ==== System-Pfade ====
  
-|Variable           |Bedeutung                                      |LoxBerry-Original                                    +| Variable  | Bedeutung  | LoxBerry-Original  
-|''%%LBSHTMLAUTH%%''|System-HTMLAUTH-Verzeichnis (Authentifizierung)|''%%/opt/loxberry%%''''%%/webfrontend/cgi/system%%''+| ''%%LBSHTMLAUTH%%'' | System-HTMLAUTH-Verzeichnis (Authentifizierung) | ''%%/opt/loxberry/webfrontend/cgi/system%%''
-|''%%LBSHTML%%''    |System-HTML-Verzeichnis (ohne Auth)            |''%%/opt/loxberry%%''''%%/webfrontend/html/system%%''+| ''%%LBSHTML%%''  | System-HTML-Verzeichnis (ohne Auth)  | ''%%/opt/loxberry/webfrontend/html/system%%''
-|''%%LBSTEMPL%%''   |System-Template-Verzeichnis                    |''%%/opt/loxberry%%''''%%/templates/system%%''       +| ''%%LBSTEMPL%%''  | System-Template-Verzeichnis   | ''%%/opt/loxberry/templates/system%%''  
-|''%%LBSDATA%%''    |System-Data-Verzeichnis                        |''%%/opt/loxberry%%''''%%/data/system%%''            +| ''%%LBSDATA%%''  | System-Data-Verzeichnis   | ''%%/opt/loxberry/data/system%%''  
-|''%%LBSLOG%%''     |System-Log-Verzeichnis                         |''%%/opt/loxberry%%''''%%/log/system %%''            +| ''%%LBSLOG%%''  | System-Log-Verzeichnis   | ''%%/opt/loxberry/log/system %%''  
-|''%%LBSTMPFSLOG%%''|System-Log-Verzeichnis (tmpfs)                 |''%%/opt/loxberry%%''''%%/log/system_tmpfs%%''       +| ''%%LBSTMPFSLOG%%'' | System-Log-Verzeichnis (tmpfs)  | ''%%/opt/loxberry/log/system_tmpfs%%''  
-|''%%LBSCONFIG %%'' |System-Config-Verzeichnis                      |''%%/opt/loxberry%%''''%%/config/system%%''          +| ''%%LBSCONFIG %%'' | System-Config-Verzeichnis  | ''%%/opt/loxberry/config/system%%''  
-|''%%LBSBIN%%''     |System-Bin-Verzeichnis **(ab LB 1.2.2)**       |''%%/opt/loxberry%%''''%%/sbin%%''                   +| ''%%LBSBIN%%''  | System-Bin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/sbin%%''  
-|''%%LBSSBIN%%''    |System-Sbin-Verzeichnis **(ab LB 1.2.2)**      |''%%/opt/loxberry%%''''%%/bin%%''                    | +| ''%%LBSSBIN%%''  | System-Sbin-Verzeichnis **(ab LB 1.2.2)**  | ''%%/opt/loxberry/bin%%''  |
- +
- +
- +
- +
-\\ +
  
 Außerdem können die [[entwickler:perl_develop_plugins_with_perl:start|Perl-Funktionen]] (use LoxBerry::System) oder [[entwickler:php_develop_plugins_with_php:start|PHP-Funktionen]] (require_once "loxberry_system.php") und deren Variablen bzw. Konstanten verwendet werden. Außerdem können die [[entwickler:perl_develop_plugins_with_perl:start|Perl-Funktionen]] (use LoxBerry::System) oder [[entwickler:php_develop_plugins_with_php:start|PHP-Funktionen]] (require_once "loxberry_system.php") und deren Variablen bzw. Konstanten verwendet werden.
Zeile 1303: 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                                                                                                                                                                                                                                |Bash-Variable| +| Nr. | Inhalt  | Bash-Variable | 
-|1  |Temporärer Ordner (''%%/tmp%%''                                                                                                                                                                                                     |''%%$1%%''   +| 1  | Temporärer Ordner (''%%/tmp%%'' | ''%%$1%%''  
-|2  |Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])               |''%%$2%%''   +| 2  | Tatsächlich verwendeter Plugin-Name (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$2%%''  
-|3  |Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])|''%%$3%%''   +| 3  | Tatsächlich verwendeter Plugin-Installationsordner (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]]) | ''%%$3%%''  
-|4  |Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])                                    |''%%$4%%''   +| 4  | Plugin-Version (siehe [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel zur Datei //plugin.cfg//]])  | ''%%$4%%''  
-|5  |LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%''                                                                                                                                                                          |''%%$5%%''   | +| 5  | LoxBerry Basis-Ordner (normalerweise ''%%/opt/loxberry%%'' | ''%%$5%%''  |
  
 **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 1332: Zeile 1094:
 Hier kann eine Datei mit Namen "sudoers" abgelegt werden. Es muss sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF) handeln. Mit der sudoers-Datei können System-Kommandos oder eigene Scripte festgelegt werden, die vom Plugin mit Rootrechten ausgeführt werden. Da es sich hierbei um ein Sicherheitsrisiko handelt, solltest Du diese Funktion nur im äußersten notfall verwenden und ausschließlich, wenn unbedingt Rootrechte erforderlich sind. Meist reicht es auch aus, den User "loxberry" in einer entsprechenden Gruppe einzutragen, um gewisse Befehle im System ausführen zu können. Hier kann eine Datei mit Namen "sudoers" abgelegt werden. Es muss sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF) handeln. Mit der sudoers-Datei können System-Kommandos oder eigene Scripte festgelegt werden, die vom Plugin mit Rootrechten ausgeführt werden. Da es sich hierbei um ein Sicherheitsrisiko handelt, solltest Du diese Funktion nur im äußersten notfall verwenden und ausschließlich, wenn unbedingt Rootrechte erforderlich sind. Meist reicht es auch aus, den User "loxberry" in einer entsprechenden Gruppe einzutragen, um gewisse Befehle im System ausführen zu können.
  
-Die Syntax des Sudoers-File beschreibt die Manpage: https://www.sudo.ws/man/1.8.15/sudoers.man.html Eine recht gute Dokumentation findet man auch hier: https://help.ubuntu.com/community/Sudoers Ein weiteres beispiel findest Du im LoxBerry-Sourcecode, der ebenfalls ein System-Sudoers-File verwendet: https://github.com/mschlenstedt/Loxberry/blob/master/system/sudoers/lbdefaults+Die Syntax des Sudoers-File beschreibt die Manpage: [[https://www.sudo.ws/man/1.8.15/sudoers.man.html]] Eine recht gute Dokumentation findet man auch hier: [[https://help.ubuntu.com/community/Sudoers]] Ein weiteres beispiel findest Du im LoxBerry-Sourcecode, der ebenfalls ein System-Sudoers-File verwendet: [[https://github.com/mschlenstedt/Loxberry/blob/master/system/sudoers/lbdefaults]]
  
 Bei der Installation wird die Datei umbenannt in den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]) und im Verzeichnis ///opt/loxberry/system/sudoers// gespeichert.  Bei der Installation wird die Datei umbenannt in den Pluginnamen aus plugin.cfg (vergleiche [[https://loxwiki.atlassian.net/wiki/pages/resumedraft.action?draftId=1203864307#PluginfürdenLoxberryentwickeln(abVersion1.x)-plugin.cfg|Kapitel plugin.cfg]]) und im Verzeichnis ///opt/loxberry/system/sudoers// gespeichert. 
- 
-   
  
 ====== Unterverzeichnis: dpkg    OPTIONAL ====== ====== Unterverzeichnis: dpkg    OPTIONAL ======
  
-\\ +Über dieses Unterverzeichnis können vom Plugin fehlende Softwarepakete nachinstalliert werden. Hierbei kann sowohl auf Standardpakete aus dem Raspbian Repository zurückgegriffen werden (dringend empfohlen!) oder (im Notfall) auch direkt DEB-Pakete mitgeliefert werden.
-Über dieses Unterverzeichnis können vom Plugin fehlende Softwarepakete nachinstalliert werden. Hierbei kann sowohl auf Stadardpakete aus dem Raspbian Repository zurückgegriffen werden (dringend empfohlen!) oder (im Notfall) auch direkt DEB-Pakete mitgeliefert werden.+
  
 **Software aus dem Standard Raspbian Repository:** **Software aus dem Standard Raspbian Repository:**
Zeile 1347: Zeile 1106:
 Hierzu muss im Verzeichnis die Datei "''%%apt%%''" existieren. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Kommentare werden durch eine vorangestellte Raute eingeleitet und bei der Interpretation der Datei ignoriert. Jedes zu installierende Paket muss in einer separaten Zeile eingetragen werden. Hierzu muss im Verzeichnis die Datei "''%%apt%%''" existieren. Es handelt sich um eine ASCII-Datei im Unix-Dateiformat (Zeilenende: Linefeed, LF). Kommentare werden durch eine vorangestellte Raute eingeleitet und bei der Interpretation der Datei ignoriert. Jedes zu installierende Paket muss in einer separaten Zeile eingetragen werden.
  
-Vor Installation der Pakete wird der Befehl  ''%%apt-get -q -y update%%'' sowie der Befehl dpkg --configure -a ausgeführtum die Paketquellen zu aktualisieren. Dieses geschieht allerdings nur einmal täglich. Anschließend werden alle Pakete gemeinsam an den Befehl ''%%apt-get -q -y install%%'' weitergeleitet und somit die Pakete installiert.+Es ist auch möglich, abhängig von der **LoxBerry** Major-Versionsnummer unterschiedliche Pakete zu installieren. Dazu wird die Major Versionsnummer an den Dateinamen der apt-Datei angehängt, also z. B.  "''%%apt3%%''" für LoxBerry 3.x"''%%apt2%%''" für LoxBerry 2.x usw. //Dieser Weg ist mittlerweile obsolete - siehe nächsten Abschnitt.//
  
-Wenn vom Plugin keine zusätzlichen Pakete benötigt werden, ist es ratsam die Datei //apt// zu löschen und nicht im Pluginarchiv zur Verfügung zu stellenSo wird die Installation des Plugins deutlich beschleunigtda bei Existenz der Datei auf jeden Fall der Befehl zum Aktualisieren der Paketquellen ausgeführt wird (egal, ob anschließend ein Paket installiert werden soll oder nicht). Die Aktualisierung der Paketquellen dauert je nach Internetverbindung mehrere Sekunden bis Minutensodass es zu einer deutlichen Verzögerung während der Installation des Plugins kommt.+Zusätzlich ist es auch möglich, abhängig von der **Debian** Major-Versionsnummer unterschiedliche Pakete zu installierenDiese Änderung war notwendigweil nicht mehr zwingend anhand der LoxBerry Major-Versionsnummer auf die darunter liegende Debian-Versionsnummer geschlossen werden kann (seit DietPi kann z. B. LoxBerry 3.0 auf unterschiedlichen Distributionsversionen laufen). Dazu wird die Debian Major Versionsnummer an den Dateinamen der apt-Datei angehängtalso z. B.  "''%%apt11%%''" für Debian 11 (Bullseye), "''%%apt12%%''" für Debian 12 (Bookworm) usw.
  
-\\+Vor Installation der Pakete wird der Befehl  ''%%apt-get -q -y update%%'' sowie der Befehl ''dpkg --configure -a'' ausgeführt, um die Paketquellen zu aktualisieren. Anschließend werden alle Pakete gemeinsam an den Befehl ''%%apt-get -q -y install%%'' weitergeleitet und somit die Pakete installiert.
  
 +Wenn vom Plugin keine zusätzlichen Pakete benötigt werden, ist es ratsam die Datei ''apt'' zu löschen und nicht im Pluginarchiv zur Verfügung zu stellen. So wird die Installation des Plugins deutlich beschleunigt, da bei Existenz der Datei auf jeden Fall der Befehl zum Aktualisieren der Paketquellen ausgeführt wird (egal, ob anschließend ein Paket installiert werden soll oder nicht). Die Aktualisierung der Paketquellen dauert je nach Internetverbindung mehrere Sekunden bis Minuten, sodass es zu einer deutlichen Verzögerung während der Installation des Plugins kommt.
  
 **Beispiel: Datei apt** **Beispiel: Datei apt**
Zeile 1364: Zeile 1124:
 package3 package3
 </code> </code>
- 
- 
- 
-** ** 
  
 **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 | +
-|Raspberry  |''%%raspberry%%''+
-|X86        |''%%x86%%''      | +
-|X64        |''%%x64%%''      |+
  
 +^ Architektur ^ Unterverzeichnis ^ Beispiel ^
 +| %%Armv6l%%  | ''%%armv6l%%'' | Raspberry 1 oder Zero |
 +| %%Armv7l%%  | ''%%armv7l%%''  | Raspberry 2 Rev. 1 |
 +| %%Aarch64 bzw. Arm64%%  | ''%%aarch64%%''  | Raspberry 2-4 und Zero2 |
 +| %%x86_64%% | ''%%x86_64%%'' | Virtual Box VM (u. a.) |
 +| %%Riscv64%% | ''%%riscv64%%'' |   |
  
 In die Unterverzeichnisse werden dann die DEB-Pakete direkt abgelegt. Diese werden auf der jeweiligen Hardware-Plattform in alphabetischer Reihenfolge per ''%%dpkg -i%%'' installiert. In die Unterverzeichnisse werden dann die DEB-Pakete direkt abgelegt. Diese werden auf der jeweiligen Hardware-Plattform in alphabetischer Reihenfolge per ''%%dpkg -i%%'' installiert.
- 
-\\ 
  
  
Zeile 1393: Zeile 1148:
  
 Zur Anzeige von Logdateien bringt der LoxBerry einen Logviewer mit, der für solche Zwecke verwendet werden sollte: http:%%//%%IP_LOXBERRY/admin/system/tools/logfile.cgi Zur Anzeige von Logdateien bringt der LoxBerry einen Logviewer mit, der für solche Zwecke verwendet werden sollte: http:%%//%%IP_LOXBERRY/admin/system/tools/logfile.cgi
- 
-\\ 
- 
  
 ===== Automatisches Ersetzen der Plugin-Verzeichnisse  ===== ===== Automatisches Ersetzen der Plugin-Verzeichnisse  =====
Zeile 1403: Zeile 1155:
 Die Auflistung der REPLACExxx Tags findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]] Die Auflistung der REPLACExxx Tags findest du hier: [[entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:automatisches_ersetzen_der_pluginverzeichnisse_replace|Automatisches Ersetzen der Plugin-Verzeichnisse (REPLACE)]]
  
-\\+**/opt/loxberry hardcoded**
  
- +Wird in einem Plugin hardcoded der Pfad ''%%/opt/loxberry%%'' verwendet, wird dies erkannt und als Warnung bei der Benutzerinstallation ausgegeben. Diese Überprüfung kann dabei nicht unterscheiden, ob der Code tatsächlich verwendet wird oder auskommentiert ist. Um die Warnung zu vermeiden, bitte stattdessen die Ersetzungskonstante ''%%REPLACELBHOMEDIR%%'', oder die [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|globale Environmentvariable]] ''%%$LBHOMEDIR%%'' verwenden.
-/opt/loxberry hardcoded +
- +
- +
-Wird in einem Plugin hardcoded der Pfad ''%%/opt/loxberry%%'' verwendet, wird dies erkannt und als Warnung bei der Benutzerinstallation ausgegeben. Diese Überprüfung kann dabei nicht unterscheiden, ob der Code tatsächlich verwendet wird oder auskommentiert ist. Um die Warnung zu vermeiden, bitte stattdessen die Ersetzungskonstante ''%%REPLACELBHOMEDIR%%'', oder die [[entwickler:bash_supporting_scripts_for_your_plugin_development:systemweite_pfade_in_environmentvariablen|globale Environmentvariable]] ''%%$LBHOMEDIR%%'' verwenden. +
  
 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.
- 
- 
- 
-   
  
 ===== Miniserver ===== ===== Miniserver =====
Zeile 1422: Zeile 1166:
  
 Die Module unterstützen direkt die Verwendung von Loxone Cloud DNS, um Miniserver in anderen Netzen zu verwenden. Die Module unterstützen direkt die Verwendung von Loxone Cloud DNS, um Miniserver in anderen Netzen zu verwenden.
- 
-\\ 
- 
  
 ===== Versenden von Emails ===== ===== Versenden von Emails =====
  
 Soll dein Plugin E-Mails versenden, so kannst du diese einfach über //sendmail// verschicken: ///usr/sbin/sendmail.// Voraussetzung ist, dass der User einen Mailserver für ausgehende E-Mails eingerichtet hat. Soll dein Plugin E-Mails versenden, so kannst du diese einfach über //sendmail// verschicken: ///usr/sbin/sendmail.// Voraussetzung ist, dass der User einen Mailserver für ausgehende E-Mails eingerichtet hat.
- 
-// // 
  
 ===== WhatsApp Gruppe ===== ===== WhatsApp Gruppe =====
Zeile 1436: Zeile 1175:
 Wenn du so weit gelesen hast, können wir dich auch gerne einladen, der LB-Plugins WhatsApp-Gruppe beizutreten, wo sich die Plugin-Entwickler austauschen, und auch vom Core-Entwicklungsteam unterstützt werden. Wenn du so weit gelesen hast, können wir dich auch gerne einladen, der LB-Plugins WhatsApp-Gruppe beizutreten, wo sich die Plugin-Entwickler austauschen, und auch vom Core-Entwicklungsteam unterstützt werden.
  
-Bitte um Kontaktaufnahme im LoxForum, mit Name, WhatsApp-Telefonnummer und kurzer Beschreibung, an welchem Plugin du arbeitest: https://www.loxforum.com/member/409-christian-fenzl +Bitte um Kontaktaufnahme im LoxForum, mit Name, WhatsApp-Telefonnummer und kurzer Beschreibung, an welchem Plugin du arbeitest: [[https://www.loxforum.com/member/409-christian-fenzl]]
- +
-\\ +
- +