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:40] 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>HELP-Link in der plugin.cfg ergänzen</do> <do Prof.Mobilux>HELP-Link in der plugin.cfg ergänzen</do>
-<do Prof.Mobilux>Mögichkeit apt-Dateien abhängig von der LB Major-Version zu verwenden, rgänzen</do> 
-<do Prof.Mobilux>Neue Möglichkeiten für Skripte (verschiedene Dateiendungen, ohne Endung, mehrere Skripte pro Typ) ergänzen</do> 
- 
-<WRAP center round tip 100%> 
-== Plugin-Interface V2 == 
- 
-Diese Beschreibung erklärt die Erstellung eines Plugins mit dem **Plugin-Interface V2**, welches erst ab //LoxBerry V1.x// zur Verfügung steht. Plugins mit **Plugin-Interface V2** sind //nicht// kompatibel mit //LoxBerry V0.2.x//. 
-</WRAP> 
  
 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 15: Zeile 7:
 Der folgende Artikel beschreibt den Aufbau eines Plugin-Archivs und beschreibt, wie ein Plugin für den LoxBerry entwickelt werden kann, sodass es sich in die Struktur des LoxBerry nahtlos einfügt. Um die einzelnen Schritte des Artikels nachvollziehen zu können solltest Du Dir die sogenannten "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 ==
Zeile 45: Zeile 37:
 Alle Dateien des Plugins können im Root-Verzeichnis des ZIP-Archivs oder in einem Unterverzeichnis mit beliebigen Namen liegen. Obwohl es mit Leerzeichen oder Sonderzeichen keine Probleme geben sollte, verwende bitte für das Unterverzeichnis nur ASCII-Zeichen ohne Leerzeichen. Es ist nicht möglich mehr als ein Untervezeichnis zu verwenden. Die ZIP-Datei darf nicht verschlüsselt oder Passwort-geschützt sein. Wenn Du den Sourcecode Deines Plugins auf GitHub verwaltest, kannst Du direkt aus GitHub heraus eine ZIP-Datei Deines Plugins herunterladen [[entwickler: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?h=400}} +{{entwickler:plugin_fur_den_loxberry_entwickeln_ab_version_1x:1209205068.png?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 67: 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)
Zeile 91: Zeile 81:
 </code> </code>
  
-| |Key  |Value                                                 +  | Key  | Value  
-|1|NAME |Legt den Namen des Autors oder der Projektgruppe fest.| +| 1 | NAME | Legt den Namen des Autors oder der Projektgruppe fest. | 
-|2|EMAIL|Email-Adresse des Autors oder der Projektgruppe       | +| 2 | EMAIL | Email-Adresse des Autors oder der Projektgruppe  |
  
 <WRAP center round tip 100%> <WRAP center round tip 100%>
 +
 == Wichtiger Hinweis! == == Wichtiger Hinweis! ==
  
 Die beiden Variablen NAME und EMAIL werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden. Die beiden Variablen NAME und EMAIL werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden.
 +
 </WRAP> </WRAP>
  
Zeile 130: Zeile 121:
 </code> </code>
  
-| |Key    |Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                          +  | 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!                                                                                                                                                +| 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.//+| 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.//                               +| 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.                                                                                                                                                                                                                                                          |+| 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%> <WRAP center round tip 100%>
 +
 == Wichtiger Hinweis! == == Wichtiger Hinweis! ==
  
 Die beiden Variablen NAME und FOLDER werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden. Die beiden Variablen NAME und FOLDER werden benutzt um das Plugin im System nach der Installation eindeutig zu identifizieren. Daher dürfen diese beiden Angaben bei späteren Updates des Plugins nicht geändert werden. Ansonsten würde das Plugin nicht als Update sondern als neues, eigenständiges Plugin vom System behandelt werden und somit parallel zum bereits installierten Plugin installiert werden.
 +
 </WRAP> </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 191: Zeile 156:
 # plugin do not use any special features of an architecture. # plugin do not use any special features of an architecture.
 # PUT in QUOTES ""!!! # PUT in QUOTES ""!!!
-# Please check http://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 204: Zeile 167:
 </code> </code>
  
-| |Key             |Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     +  | Key  | Value    
-|1|REBOOT          |Wenn true, wird nach der Plugin-Installation zum Reboot aufgefordert. Mögliche Werte: true|false                                                                                                                                                                                                                                                                                                                                                                                                                                                          +| 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                                                                                                                                                                                                                                                                                                                                                                                                                                            +| 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                                                                                                                                                                                                                                                                                                                                                                                                                                        +| 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: raspberryx86 und x64                                                                                                                                                                                                                                                                                       +| 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: %%armv6larmv7l, aarch64, x86_64, riscv64Es 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| +| 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.                                                                                                                                                                                                                                                                                                                                                                                               |+| 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** 
 + 
 +<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]]  |   |
  
 ====== 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| +| Nr. | Inhalt  | Bash-Variable | 
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 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%%''   +| 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%%''  
-|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%%''   |+| 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 232: 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 260: 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   +| Logfile Tags | Hervorhebung  
-|<OK>        |Grün           +| <OK>  | Grün  
-|<INFO>      |Schwarz/Neutral| +| <INFO>  | Schwarz/Neutral | 
-|<WARNING>   |Rot            +| <WARNING>  | Rot  
-|<ERROR>     |Rot            +| <ERROR>  | Rot  
-|<FAIL>      |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.
Zeile 339: Zeile 329:
 ====== 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| +| Nr. | Inhalt  | Bash-Variable | 
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 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%%''   +| 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%%''  
-|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%%''   |+| 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 357: 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   +| Logfile Tags | Hervorhebung  
-|<OK>        |Grün           +| <OK>  | Grün  
-|<INFO>      |Schwarz/Neutral| +| <INFO>  | Schwarz/Neutral | 
-|<WARNING>   |Rot            +| <WARNING>  | Rot  
-|<ERROR>     |Rot            +| <ERROR>  | Rot  
-|<FAIL>      |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.
Zeile 463: Zeile 453:
 ====== 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| +| Nr. | Inhalt  | Bash-Variable | 
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 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%%''   +| 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%%''  
-|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%%''   | +| 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 482: 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 510: 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   +| Logfile Tags | Hervorhebung  
-|<OK>        |Grün           +| <OK>  | Grün  
-|<INFO>      |Schwarz/Neutral| +| <INFO>  | Schwarz/Neutral | 
-|<WARNING>   |Rot            +| <WARNING>  | Rot  
-|<ERROR>     |Rot            +| <ERROR>  | Rot  
-|<FAIL>      |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.
Zeile 585: 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| +| Nr. | Inhalt  | Bash-Variable | 
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 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%%''   +| 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%%''  
-|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%%''   |+| 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 607: 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 634: 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   +| Logfile Tags | Hervorhebung  
-|<OK>        |Grün           +| <OK>  | Grün  
-|<INFO>      |Schwarz/Neutral| +| <INFO>  | Schwarz/Neutral | 
-|<WARNING>   |Rot            +| <WARNING>  | Rot  
-|<ERROR>     |Rot            +| <ERROR>  | Rot  
-|<FAIL>      |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.
Zeile 712: Zeile 698:
 ====== 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| +| Nr. | Inhalt  | Bash-Variable | 
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 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%%''   +| 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%%''  
-|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%%''   |+| 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 730: 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 759: 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   +| Logfile Tags | Hervorhebung  
-|<OK>        |Grün           +| <OK>  | Grün  
-|<INFO>      |Schwarz/Neutral| +| <INFO>  | Schwarz/Neutral | 
-|<WARNING>   |Rot            +| <WARNING>  | Rot  
-|<ERROR>     |Rot            +| <ERROR>  | Rot  
-|<FAIL>      |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.
Zeile 839: Zeile 822:
 ====== 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| +| Nr. | Inhalt  | Bash-Variable | 
-|1  |Temporärer Ordner, in den das Plugin-Archiv zur Installation entpackt wurde (''%%/tmp/uploads/$1%%''                                                                                                                                |''%%$1%%''   +| 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%%''   +| 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%%''  
-|6  |Voller Pfad zum temporären Ordner, in den das Plugin-Archiv zur Installation entpackt wurde - inklusive eventuellem Unterordner aus dem ZIP-Archiv                                                                                    |''%%$6%%''   |+| 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 857: 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 885: 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   +| Logfile Tags | Hervorhebung  
-|<OK>        |Grün           +| <OK>  | Grün  
-|<INFO>      |Schwarz/Neutral| +| <INFO>  | Schwarz/Neutral | 
-|<WARNING>   |Rot            +| <WARNING>  | Rot  
-|<ERROR>     |Rot            +| <ERROR>  | Rot  
-|<FAIL>      |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.
Zeile 986: Zeile 967:
 Die Dateien aus diesem Verzeichnis werden im System als Cronjob installiert. Es muss sich dabei jeweils um ein Shell-Skript oder um ein Skript mit korrektem Shebang handeln. Es muss sich um ASCII-Dateien im Unix-Dateiformat (Zeilenende: 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]]
Zeile 992: Zeile 973:
 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 1033: 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}}
  
Zeile 1052: 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 1086: Zeile 1066:
 **Ab LoxBerry 2.0:** Dem uninstallscript werden folgende Commandline-Parameter übergeben: **Ab LoxBerry 2.0:** Dem uninstallscript werden folgende Commandline-Parameter übergeben:
  
-|Nr.|Inhalt                                                                                                                                                                                                                                |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 1115: 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. 
Zeile 1121: Zeile 1100:
 ====== Unterverzeichnis: dpkg    OPTIONAL ====== ====== Unterverzeichnis: dpkg    OPTIONAL ======
  
-Ü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.+Ü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.
  
 **Software aus dem Standard Raspbian Repository:** **Software aus dem Standard Raspbian Repository:**
Zeile 1127: 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 1145: Zeile 1127:
 **Software aus selbst mitgelieferten DEB-Paketen:** **Software aus selbst mitgelieferten DEB-Paketen:**
  
-Möchte man direkt DEB-Pakete mitliefern, z. B. weil die benötigte Software im Standard-Repository nicht zur Verfügung steht, muss für jede Hardware-Architektur ein entsprechendes Unterverzeichnis angelegt werden:+Möchte man direkt DEB-Pakete mitliefern, z. B. weil die benötigte Software im Standard-Repository nicht zur Verfügung steht, muss für jede Hardware-Architektur ein entsprechendes Unterverzeichnis angelegt werden, in dem dann die DEB-Pakete liegen. Es werden dabei Verzeichnisse mit dem Architektur-Namen erwartet, die auch der Befehl uname -m zurückliefert. Mit DietPi wurden die unterstützten Architekturen erweitert (ab LoxBerry 3.0). Aktuell (Stand: 07.03.2023) sind das:
  
-|Architektur|Unterverzeichnis | +Architektur Unterverzeichnis ^ Beispiel ^ 
-|Raspberry  |''%%raspberry%%''+| %%Armv6l%%  | ''%%armv6l%%'' | Raspberry 1 oder Zero 
-|X86        |''%%x86%%''      +| %%Armv7l%%  | ''%%armv7l%%''  | Raspberry 2 Rev. 1 | 
-|X64        |''%%x64%%''      |+| %%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.
 +
  
 ====== Besonderheiten / Hinweise ====== ====== Besonderheiten / Hinweise ======
Zeile 1172: Zeile 1157:
 **/opt/loxberry hardcoded** **/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. +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.
Zeile 1190: 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]]