Autor Thema: Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"  (Gelesen 1446 mal)

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Hallo,

Ich möchte demnächst den Signalbot ins normale update/svn überführen.
Dazu plane ich aber eine Reihe zusätzlicher Dateien die ich unter "www/signal" ablegen möchte, damit sie als "href" aus der FW_detailFn zugreifbar sind:

Ds würde dann so aussehen:
www/signal/:
chrome-x11-snapshot.png  firefox-x11-snapshot.png  signalcaptcha.desktop  signalcaptcha.reg  signal_install.sh
wobei die beiden "signalcaptcha" Dateien immer dynamisch erzeugt werden und nicht ins svn müssten.

Die größte Frage hierbei ist das installer shell script. Ich habe es aktuell unter www damit es erstens auch zum Download zur Verfügung steht und zweitens automatisch aktualisiert werden kann (sollte möglichst immer zur Modulversion passen).
Die beiden .png sind Screenshots als Hilfestellung bei der Benutzerführung der Registrierung.

Gibt es Bedenken zu diesem Vorgehen?

Gruß,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)

Offline Dr. Boris Neubert

  • Global Moderator
  • Hero Member
  • ****
  • Beiträge: 4985
  • Are we just self-replicating DNA?
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #1 am: 13 September 2021, 15:23:49 »
Hallo,

na ja, es wird dadurch nicht qualitativ schlimmer, als es schon ist, zementiert nur das Problem, dass unter /opt nur statische Dateien gehören aber FHEM dort standardmäßig Logs, .gplot-Dateien etc. hinschreibt. Ich beziehe mich auf das Debian-Package.

Filesystem Hierarchy Standard

Keine Einwände.

Viele Grüße
Boris
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24505
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #2 am: 13 September 2021, 17:27:06 »
Achtung: neue Unterverzeichnisse werden nicht automatisch per update verteilt, dafuer muss ich fhemupdate.pl anpassen und installieren.


Die FHEM Installation entsprach vor 10+ Jahren dem Linux FileSystem Standard, damit hatte ich aber deutlich mehr Probleme als mit dem einen Verzeichnis unter /opt. Wer FHEM mit dem (angepassten) Makefile installiert, der sollte weiterhin diesen Standard folgen koennen.

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #3 am: 13 September 2021, 17:32:08 »
Ok - kannst du dann schon mal vorsorglich ein Verzeichnis "signal" unter "www" anlegen?

Danke,
Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24505
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #4 am: 13 September 2021, 17:56:31 »
Ungern, erst wenn was eingecheckt ist.

Normalerweise begrenze ich auch die Datei-Endungen (z.Bsp. .css/.js oder .png/.jpg), in diesem Fall scheint es aber eine Sammelsurium fuer unterschiedlichste Aufgaben zu sein. Nach Gefuehl haette ich etliche (.reg, .sh, .desktop) eher im Wiki verortet.
Alternativ koennte man sie nach contrib packen, und im DetailFn ein Link dahin (https://svn.fhem.de/trac/browser/trunk/fhem/contrib/signal) ?
Bin aber nicht tief in der Materie drin, moeglicherweise sind diese Vorschlaege nicht sinnvoll.

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17480
  • s/fhem\.cfg/configDB/g
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #5 am: 13 September 2021, 18:02:18 »
Die größte Frage hierbei ist das installer shell script. Ich habe es aktuell unter www damit

Installationsskripte unter ./www abzulegen finde ich nicht besonders glücklich gewählt.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #6 am: 13 September 2021, 18:04:53 »
Also die pngs kann ich dir gleich hinlegen.
Das .reg und .desktop wird nicht verteilt sondern dynamisch erzeugt wenn der User den Registration Wizard verwendet - da brauchst du also nichts zu machen.
Bleibt eigentlich nur das .sh als "Sonderlocke" - und contrib wird ja nicht per update aktualisiert.

Ich könnte zwar einen Download link nach svn.fhem.de einfügen, aber die Download Option ist eher optional, da das Script ja auf dem FHEM Server (und sogar mit sudo) ausgeführt werden muss.
Wer von Windows aus auf seinen Raspi zugreift müsste das Script also immer erstmal umkopieren.

Wenn .sh ein blocking point ist, dann sehe ich höchstens noch die Option eine Unterroutine ins Modul einzubauen, die einen entsprechenden Download macht um es userfreundlich zu gestalten.
Oder es gibt einen besseren Vorschlag wo ich es hinlegen könnte?

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17480
  • s/fhem\.cfg/configDB/g
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #7 am: 13 September 2021, 18:09:52 »
da das Script ja auf dem FHEM Server (und sogar mit sudo) ausgeführt werden muss.
Wer von Windows aus auf seinen Raspi zugreift müsste das Script also immer erstmal umkopieren.

Du solltest auch daran denken, dass ein Skript, was in oder unterhalb von ./www per update ausgeliefert wird, nach dem Update ohnehin nicht ausführbar ist.
Der Benutzer muss die Datei vernutlich immer zuerst manuell anpassen, bevor sie benutzt werden kann. Dann kann er die Datei auch gleich von irgendwoher laden.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24505
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #8 am: 13 September 2021, 18:24:23 »
Zitat
Der Benutzer muss die Datei vernutlich immer zuerst manuell anpassen, bevor sie benutzt werden kann.
Alternativ ruft man den per "sh /opt/FHEM/www/signal/XXX.sh" auf.
Wegen einer Datei will ich jetzt keinen Aufstand ausloesen.

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #9 am: 13 September 2021, 18:31:09 »
Wie gesagt am "www" hängt mein Herzblut hier gar nicht, sondern an der automatischen Verteilung.
Vielleicht ist die Frage ja schon mal aufgetauscht oder wir lösen das gleich konsistent für die Zukunft.
Ich könnte mir z.B. auch ein Verzeichnis "scripts" under "FHEM" vorstellen. Evtl. kann man da dann sogar das +x flag setzen.

Jörg
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17480
  • s/fhem\.cfg/configDB/g
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #10 am: 13 September 2021, 18:32:24 »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!
Zustimmung Zustimmung x 1 Liste anzeigen

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17480
  • s/fhem\.cfg/configDB/g
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #11 am: 13 September 2021, 18:38:24 »
Ich könnte mir z.B. auch ein Verzeichnis "scripts" under "FHEM" vorstellen. Evtl. kann man da dann sogar das +x flag setzen.

Grundsätzlich gibt es dafür ja schon einen etablierten Mechanismus:
In contrib gibt es eine Datei namens executables. Alle Dateien, die dort drinstehen, bekommen vom Makefile automatisch das x-Flag.
Allerdings wird diese Datei, weil sie in contrib liegt, auch nicht per update aktualisiert.
Irgendwie ein bisschen ein Problem, bei dem sich die Katze in den Schwanz beißt.
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Beta-User

  • Developer
  • Hero Member
  • ****
  • Beiträge: 15739
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #12 am: 13 September 2021, 18:40:26 »
Wenn man sowieso shell+sudo für die Ausführung braucht und das ganze Linux-Spezifisch ist: Warum dann nicht gleich den kompletten Befehl einschließlich voranstehendem wget in die Doku aufnehmen? Dann wäre nur zu klären, ob es ein bestimmtes Verzeichnis ist, von wo aus man das absetzen muss und könnte die Datei "updatefest" evtl. auch gleich wieder Löschen, wenn sie abgearbeitet ist?
Von wo die Datei dann letztendlich (jeweils aktuell) kommt, wäre dann ziemlich egal...
Server: HP-T620@Debian 10, aktuelles FHEM + ConfigDB | CUL_HM (VCCU) | MQTT2: MiLight@ESP-GW, BT@OpenMQTTGw | MySensors: seriell, v.a. 2.3.1@RS485 | ZWave | ZigBee@deCONZ | SIGNALduino | MapleCUN | RHASSPY
svn:MySensors, Weekday-&RandomTimer, Twilight,  AttrTemplate {u.a. mqtt2, mysensors, zwave}

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #13 am: 13 September 2021, 18:41:12 »
Principiis obsta!Kann mir zwar denken was das heisst (hatte kein Latein) - Google behauptet es bedeutet: Steh mir von Anfang an im Weg!

Ich will hier eben auch keinen Präzedenzfall schaffen, deswegen mein Vorschlag eines evtl. konsistenteren Ansatzes.

Wenn contrib verteilt würde, dann würde ich das auch sofort nutzen - da sind ja schon andere Shellscripts. Wird es aber leider nicht.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17480
  • s/fhem\.cfg/configDB/g
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #14 am: 13 September 2021, 18:50:43 »
Wenn contrib verteilt würde, dann würde ich das auch sofort nutzen - da sind ja schon andere Shellscripts. Wird es aber leider nicht.

Ich könnte mir z.B. auch ein Verzeichnis "scripts" under "FHEM" vorstellen. Evtl. kann man da dann sogar das +x flag setzen.

Es wurden in der letzten Zeit schon neue Verzeichnisse (lib, thirdparty) unterhalb von FHEM hinzugefügt, die auch per update verteilt werden.
Könntest Du Dein script nicht dort sinnvoll unterbringen?
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #15 am: 13 September 2021, 19:56:26 »
thirdparty wird eben nicht verteilt (an dem Verzeichnis war ich mit Schuld :) )
Aber wenn lib verteilt wird (zumindest habe ich da drin Dateien neueren Datums) - warum nicht?
Bisher sind da nur .pm files drin. Gibt es da eine Verzeichnis-Konvention?
Schaut ein wenig nach "lib/FHEM" gefolgt von einem Modulnamen bzw. Oberbegriff aus

Wäre das dann lib/FHEM/Messenger?
oder eher doch lib/FHEM/Scripts?
oder sogar lib/Scripts da eben eigentlich kein FHEM Bestandteil?

Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #16 am: 21 September 2021, 20:29:30 »
Falls Admins mitlesen, erstmal eine Bitte:
Könnt ihr den Signalbot Thread https://forum.fhem.de/index.php/topic,118370.0.html
von "Codeschnipsel" nach "Unterstützende Dienste" verschieben?
Ich wollte das Modul demnächst offiziell einchecken und Codeschnipsel ist wirklich nicht mehr passend - die Historie im Thread aber denke ich ist schon interessant.

Nachdem das mit den zusätzlichen Dateien hier jetzt nicht abschliessend behandelt wurde, habe ich mich für einen anderen Ansatz entschieden:
Die Dateien sind jetzt unter contrib/signal
Dort werden sie über https://svn.fhem.de/fhem/trunk/fhem/ referenziert bzw. nachgeladen.
Ein www/signal wird vom Modul lokal angelegt und verwendet.

Dadurch entsteht zwar eine Abhängigkeit zum SVN Server, aber ohne Internet funktioniert Signal sowieso nicht und die Dateien werden nur anfangs beim Einrichtungsprozess benötigt.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24505
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #17 am: 21 September 2021, 22:54:35 »
Zitat
Könnt ihr den Signalbot Thread https://forum.fhem.de/index.php/topic,118370.0.html
von "Codeschnipsel" nach "Unterstützende Dienste" verschieben?
Erledigt.

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1772
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #18 am: 22 September 2021, 11:16:32 »
Was spricht gegen bin/ neben lib/ für executables?

Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24505
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #19 am: 22 September 2021, 12:19:25 »
Wenn wir mit bin anfangen, dann muessen wir OS und/oder CPU-Architektur beruecksichtigen, z.Bsp. ueber Unterverzeichnisse.
Ich will ungern damit anfangen, und empfehle stattdessen perl :)
Zustimmung Zustimmung x 1 Liste anzeigen

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1772
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #20 am: 22 September 2021, 12:51:24 »
Wenn wir mit bin anfangen, dann muessen wir OS und/oder CPU-Architektur beruecksichtigen, z.Bsp. ueber Unterverzeichnisse.

Ja gut, ist ein Punkt.

Ich will ungern damit anfangen, und empfehle stattdessen perl :)

Das ja auch nicht völlig Plattform-/Archtitektur-unabhängig ist.

Der TE hat ja gefragt ob er seine Skripte in lib/ packen soll. Im CPAN ist es so, dass (Perl-)Executables in einem bin-Verzeichnis des Moduls liegen, z.B. hier von Perl::Critic (https://fastapi.metacpan.org/source/PETDANCE/Perl-Critic-1.140/bin/). Das finde ich eigentlich als Ort auch charmant.

lib/FHEM/Messenger/Signal/bin ist z.B. ein guter Ort für sowas, finde ich.


Offline rudolfkoenig

  • Administrator
  • Hero Member
  • *****
  • Beiträge: 24505
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #21 am: 22 September 2021, 13:39:22 »
Zitat
Das ja auch nicht völlig Plattform-/Archtitektur-unabhängig ist.
Ich meine doch, man muss "nur" die Platform-abhaengigen Probleme im Code loesen, soweit das ueberhaupt sinnvoll moeglich ist.

Zitat
lib/FHEM/Messenger/Signal/bin ist z.B. ein guter Ort für sowas, finde ich.
Die Haken dabei:
- wenn das per update verteilt werden soll, dann muss ich alle Verzeichnisse manuell in contrib/fhemupdate.pl einbauen, und ausrollen.
- ich bin nicht sicher, ob ich auf einem Linux-Rechner Windows-Binaries haben will, und andersherum => Architektur abhaengiges update noetig?

Ich habe kein Problem damit, wenn sowas einfach gemacht wird, eher damit, wenn das offiziell abgesegnet werden soll, weil ich dann alle weiteren Moeglichkeiten beruecksichtigen muss.

Offline Christoph Morrison

  • Developer
  • Hero Member
  • ****
  • Beiträge: 1772
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #22 am: 22 September 2021, 14:46:26 »
Ich meine doch, man muss "nur" die Platform-abhaengigen Probleme im Code loesen, soweit das ueberhaupt sinnvoll moeglich ist.

Nur ist wirklich gut ;-)

Die Haken dabei:
- wenn das per update verteilt werden soll, dann muss ich alle Verzeichnisse manuell in contrib/fhemupdate.pl einbauen, und ausrollen.

Ich dachte $FHEMDIR/lib wird sowieso mitverteilt? Unter $FHEMDIR/FHEM/lib würde ich sowas eh nicht sehen.

- ich bin nicht sicher, ob ich auf einem Linux-Rechner Windows-Binaries haben will, und andersherum => Architektur abhaengiges update noetig?

Ist die Verteilung von Binaries nicht eh ein Problem im Lizenzkontext? Da müsste ja auch immer der Quellcode mitgeliefert werden, oder? An sich hätte ich eher weniger Sorge, Windows-Gedöns auf meinem Linux zu haben. Läuft dort vermutlich sicherer als auf Win ;-)

Offline betateilchen

  • Developer
  • Hero Member
  • ****
  • Beiträge: 17480
  • s/fhem\.cfg/configDB/g
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #23 am: 23 September 2021, 23:47:21 »
Hey Kollegen - gehts noch?

Da werden plötzlich 4 * 23 MB als Debian-Pakete in die FHEM svn Struktur eingepackt, die 99% aller Anwender nicht brauchen und die nur unnötigen Traffic verursachen.
Wenn das wirklich ernst gemeint ist und so bleiben soll, werde ich den Betrieb von debian.fhem.de wahrscheinlich in den nächsten Tagen einstellen.

Kann man sich nicht im Vorfeld erstmal ein paar Gedanken machen, welche Auswirkungen an welcher Stelle solche Ideen haben, bevor man sowas einfach eincheckt?
« Letzte Änderung: 23 September 2021, 23:51:15 von betateilchen »
-----------------------
Unaufgeforderte Anfragen per email werden von mir nicht beantwortet. Dafür ist das Forum da.
-----------------------
Lesen gefährdet die Unwissenheit!

Offline Adimarantis

  • Developer
  • Full Member
  • ****
  • Beiträge: 450
Antw:Verzeichnisstruktur - zusätzliche Dateien für Modul unter "www"
« Antwort #24 am: 24 September 2021, 07:07:58 »
Sorry, an den Traffik, den das erzeugt, wenn es jeder auscheckt habe ich nicht gedacht.
Gelöscht. Ich finde einen anderen Platz.
Raspberry 4 + HM-MOD-RPI-PCB (pivCCU) + RfxTrx433XL + 2xRaspberry 1
Module: 50_Signalbot, 52_I2C_ADS1x1x , (50_SPI_MAX31865)