[PATCH] - fhem.pl Aufnahme von Hilfsmodulen (HttpUtils, ...) in version output

Begonnen von Markus Bloch, 10 Januar 2016, 16:16:38

Vorheriges Thema - Nächstes Thema

Dr. Boris Neubert

Das würde ich sofort einbauen, wenn ich noch mit meinem 2400baud-Modem ins Internet gehen würde.

SCNR.
Globaler Moderator, Developer, aktives Mitglied des FHEM e.V. (Marketing, Verwaltung)
Bitte keine unaufgeforderten privaten Nachrichten!

betateilchen

Das wäre fatal, da sich die Liste der geladenen Module zur Laufzeit jederzeit ändernkann, da z.B. Die ganzen Commandmodule erst bei ihrem ersten Aufruf geladen werden.

Deshalb: Beim Auslagern von CommandVersion unbedingt testen, ob die Versionsausgabe zu 98_update beim ersten Aufruf bereits enthalten ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

rudolfkoenig

Ich habe selten was gegen Auslagern in externe Module, in diesem Fall auch nicht.
Ob eine erweiterte version wirklich notwendig ist, das duerft ihr ausdiskutieren, ich hatte noch nicht das Beduerfnis.

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Würde es nicht Sinn machen, den Versionsstring soweit wie möglich direkt beim Laden eines Modules in den modules-hash zu übernehmen?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

Greift aber eben nicht bei den Hilfsmodulen. Damit hättest du den selben Output, wie jetzt schon.

Sich auf %INC zu berufen ist am saubersten, da es direkt vom Perl-Interpreter kommt und man kommt ohne Sonderlocken an alle nachgelagerten "FHEM-Hilfsmodule".

Hilfsmodule werden meistens mit "use  XXX" oder "require XXX.pm" geladen, da greifen diese Mechanismen nicht.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

justme1968

bevor man das tut sollte man aber auf jeden fall ein mal prüfen wie lange es dauert die version aus dem perl file heraus zu parsen. nicht das der fhem start dann deutlich langsamer wird.

leider steckt die version nicht in einer variablen auf die man dann einfach zugreifen könnte. das wäre die eigentlich saubere lösung. die aber änderungen an jedem file erforderlich machen würde.

ausserdem kommen dann genau die dynamisch geladenen module nicht in der liste vor.

die nicht-modus files fie Tcputils, HttpUtils,... in version zu berücksichtigen finde ich gut. aber der overhead sollte minimal bleiben.

gruss
  andre

edit: das bezog sich auf das 'direkt beim laden'
hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

rudolfkoenig

Ich sehe noch nicht den Grund, warum man diesen String direkt beim Laden braucht.
Sonst ist der Overhead mehr oder weniger egal, es wird ja nur im Problemfall aufgerufen, und das auch nur manuell.

justme1968

hue, tradfri, alexa-fhem, homebridge-fhem, LightScene, readingsGroup, ...

https://github.com/sponsors/justme-1968

betateilchen

Zitat von: rudolfkoenig am 10 Januar 2016, 18:59:49
Ich sehe noch nicht den Grund, warum man diesen String direkt beim Laden braucht.

Es war nur so ein spontaner Gedanke, der einem auf langweiligen Bahnfahrten durchaus mal kommen kann.

Noch mehr Gedanken, wenn man an der Stelle jetzt rumschraubt:

- Man sollte parallel einen pre-commit hook planen, der das Einchecken von Moduldateien ohne svn-id verhindert.

- Und falls doch irgendwann fhem@git kommen sollte, gibt es ohnehin keine automatische Id in der Datei mehr.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

Du solltest weniger Bahn fahren. Ich komm garnicht so schnell hinterher mit programmieren, wie du die guten Ideen postest :D
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

Markus Bloch

Hallo zusammen,

anbei der fertige Patch.

Wie vorgeschlagen ist version nun ausgelagert als 98_version.pm. Der Funktionsumfang ist nachwievor der selbe. Der Output sieht bei mir wie folgt aus:


File                        Rev   Last Change

fhem.pl                     10397 2016-01-07 08:36:49Z rudolfkoenig
90_at.pm                    10048 2015-11-29 14:51:40Z rudolfkoenig
98_autocreate.pm            10165 2015-12-13 11:14:15Z rudolfkoenig
00_CUL.pm                   10146 2015-12-10 10:17:42Z rudolfkoenig
10_CUL_HM.pm                10411 2016-01-08 15:18:17Z martinp876
98_dewpoint.pm               6757 2014-10-12 18:58:57Z joachim09876
98_dummy.pm                  8809 2015-06-23 18:02:33Z rudolfkoenig
00_FBAHA.pm                 10398 2016-01-07 09:05:47Z rudolfkoenig
10_FBDECT.pm                 9304 2015-09-25 18:33:18Z rudolfkoenig
72_FB_CALLLIST.pm           10317 2015-12-31 12:12:25Z markusbloch
72_FB_CALLMONITOR.pm        10349 2016-01-03 14:20:57Z markusbloch
01_FHEMWEB.pm               10398 2016-01-07 09:05:47Z rudolfkoenig
92_FileLog.pm               10365 2016-01-05 10:57:56Z rudolfkoenig
98_GEOFANCY.pm              10325 2016-01-02 00:28:34Z loredo
00_HMLAN.pm                 10409 2016-01-08 15:13:59Z martinp876
95_holiday.pm               10004 2015-11-25 12:58:12Z rudolfkoenig
82_LGTV2012.pm                  2 2014-03-17 11:05:19Z juliantatsch
75_LGTV_RS232.pm             6414 2014-08-17 21:35:34Z markusbloch
91_notify.pm                 8953 2015-07-13 15:13:06Z rudolfkoenig
34_panStamp.pm               8803 2015-06-22 19:21:07Z justme1968
73_PRESENCE.pm              10295 2015-12-29 18:47:24Z markusbloch
33_readingsGroup.pm         10157 2015-12-12 11:35:11Z justme1968
98_structure.pm             10382 2016-01-06 16:21:13Z rudolfkoenig
99_SUNRISE_EL.pm             9831 2015-11-08 19:13:09Z rudolfkoenig
98_SVG.pm                    9577 2015-10-21 17:45:02Z rudolfkoenig
34_SWAP.pm                  10297 2015-12-29 19:04:09Z justme1968
35_SWAP_0000002200000003.pm 10308 2015-12-30 11:42:17Z justme1968
98_telnet.pm                10398 2016-01-07 09:05:47Z rudolfkoenig
59_Twilight.pm               8743 2015-06-14 12:14:57Z dietmar63
99_Utils.pm                  7914 2015-02-08 11:14:10Z rudolfkoenig
98_version.pm               10247 2015-12-23 19:53:31Z markusbloch
91_watchdog.pm              10314 2015-12-31 08:44:32Z rudolfkoenig
55_weco.pm                   5517 2014-04-13 00:37:45Z betateilchen
99_XmlList.pm                1840 2012-09-12 13:52:08Z rudolfkoenig
71_YAMAHA_AVR.pm            10355 2016-01-03 22:00:41Z markusbloch
71_YAMAHA_BD.pm             10036 2015-11-28 16:02:57Z markusbloch

Blocking.pm                 10343 2016-01-03 10:55:45Z rudolfkoenig
Color.pm                     9280 2015-09-20 08:07:41Z justme1968
DevIo.pm                     8954 2015-07-13 16:01:48Z rudolfkoenig
FritzBoxUtils.pm             6574 2014-09-19 17:32:48Z rudolfkoenig
HMConfig.pm                 10410 2016-01-08 15:15:50Z martinp876
HttpUtils.pm                10137 2015-12-09 09:01:41Z rudolfkoenig
SetExtensions.pm             9413 2015-10-09 13:13:11Z rudolfkoenig
TcpServerUtils.pm           10346 2016-01-03 12:34:27Z rudolfkoenig
TimeSeries.pm                9013 2015-08-02 10:09:55Z borisneubert


Ein "version Blocking" gibt folgendes zurück:

File        Rev   Last Change

Blocking.pm 10343 2016-01-03 10:55:45Z rudolfkoenig


Ich würde mich anbieten es zu maintainen.

Viele Grüße
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

Markus Bloch

Zitat von: betateilchen am 10 Januar 2016, 18:07:03
Das wäre fatal, da sich die Liste der geladenen Module zur Laufzeit jederzeit ändernkann, da z.B. Die ganzen Commandmodule erst bei ihrem ersten Aufruf geladen werden.

Deshalb: Beim Auslagern von CommandVersion unbedingt testen, ob die Versionsausgabe zu 98_update beim ersten Aufruf bereits enthalten ist.

Was genau meinst du damit? Ich verstehe nicht welches Problem du meinst.

Gruß
Markus
Developer für Module: YAMAHA_AVR, YAMAHA_BD, FB_CALLMONITOR, FB_CALLLIST, PRESENCE, Pushsafer, LGTV_IP12, version

aktives Mitglied des FHEM e.V. (Technik)

betateilchen

Kannst Du die Datei bitte mal als richtige pm Datei anhängen anstatt als diff?
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!