[exclude_from_update] suche regex für mehrere dateien

Begonnen von frank, 02 März 2023, 14:13:49

Vorheriges Thema - Nächstes Thema

frank

moin,

ich suche eine regex, um das modul 73_AutoShuttersControl.pm "komplett" vom update auszuschliessen.
leider besteht das modul aus mindestens 16 dateien, die zudem in 6 unterschiedliche ordner verteilt sind.

zumindestens der string "ShuttersControl" wäre in jeder kombination aus pfad+dateinamen enthalten.
allerdings kann ich diese möglichkeit aus der commandref nicht erkennen.
ungern möchte ich im attribut alle 16 dateien inklusive pfadangabe eingeben.

wer kann einen funktionierenden regex tip geben?

UPD 2023-01-04_07:45:04 116377 FHEM/73_AutoShuttersControl.pm

UPD 2023-01-04_07:45:04 76671 lib/FHEM/Automation/ShuttersControl.pm
UPD 2023-01-04_07:45:04 2735 lib/FHEM/Automation/ShuttersControl/Dev.pm
UPD 2023-01-04_07:45:04 11902 lib/FHEM/Automation/ShuttersControl/Dev/Attr.pm
UPD 2023-01-04_07:45:04 7314 lib/FHEM/Automation/ShuttersControl/Dev/Readings.pm
UPD 2023-01-04_07:45:04 112362 lib/FHEM/Automation/ShuttersControl/EventProcessingFunctions.pm
UPD 2023-01-04_07:45:04 40728 lib/FHEM/Automation/ShuttersControl/Helper.pm
UPD 2023-01-04_07:45:04 7449 lib/FHEM/Automation/ShuttersControl/Rainprotection.pm
UPD 2023-01-04_07:45:04 2724 lib/FHEM/Automation/ShuttersControl/Roommate.pm
UPD 2023-01-04_07:45:04 25589 lib/FHEM/Automation/ShuttersControl/Shading.pm
UPD 2023-01-04_07:45:04 31877 lib/FHEM/Automation/ShuttersControl/Shutters.pm
UPD 2023-01-04_07:45:04 52796 lib/FHEM/Automation/ShuttersControl/Shutters/Attr.pm
UPD 2023-01-04_07:45:04 2848 lib/FHEM/Automation/ShuttersControl/Shutters/Readings.pm
UPD 2023-01-04_07:45:04 2256 lib/FHEM/Automation/ShuttersControl/Window.pm
UPD 2023-01-04_07:45:04 3932 lib/FHEM/Automation/ShuttersControl/Window/Attr.pm
UPD 2023-01-04_07:45:04 2249 lib/FHEM/Automation/ShuttersControl/Window/Readings.pm


Zitatexclude_from_update
Contains a space separated list of fileNames (regexps) which will be excluded by an update. The special value commandref will disable calling commandref_join at the end, i.e commandref.html will be out of date. The module-only documentation is not affected and is up-to-date.
Example:

    attr global exclude_from_update 21_OWTEMP.pm FS20.off.png

The regexp is checked against the filename and the source:filename combination. To exclude the updates for FILE.pm from fhem.de, as you are updating it from another source, specify fhem.de.*:FILE.pm
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

yersinia

#1
hast du mal
attr global exclude_from_update lib/FHEM/Automation/Shutters* FHEM/73_AutoShuttersControl.pm
versucht?
viele Grüße, yersinia
----
FHEM 6.3 (SVN) on RPi 4B with RasPi OS Bullseye (perl 5.32.1) | FTUI
nanoCUL->2x868(1x ser2net)@tsculfw, 1x433@Sduino | MQTT2 | Tasmota | ESPEasy
VCCU->14xSEC-SCo, 7xCC-RT-DN, 5xLC-Bl1PBU-FM, 3xTC-IT-WM-W-EU, 1xPB-2-WM55, 1xLC-Sw1PBU-FM, 1xES-PMSw1-Pl

LuckyDay

attr global exclude_from_update lib/FHEM/Auto.* 73_AutoShuttersControl.pm

betateilchen

#3
Zitat von: fhem-hm-knecht am 02 März 2023, 14:42:20
exclude_from_update lib/FHEM/Auto.*

Vorsicht!

In lib/FHEM/Automation können durchaus auch Dateien vorhanden sein, die NICHT zu AutoSchuttersControl gehören!
Wenn man diesen kompletten Pfad vom Update ausschließt, kann man dadurch die Funktionsfähigkeit anderer Module gefährden.


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

frank

danke euch,
also sind grundsätzlich zumindestens auch komplette pfadstrukturen möglich.

ZitatIn lib/FHEM/Automation können durchaus auch Dateien vorhanden sein, die NICHT zu AutoSchuttersControl gehören!
das hatte ich bereits befürchtet/vermutet. theoretisch gilt das wahrscheinlich auch für die unterordner.

eigentlich müsste in jeder basis-modul-datei (73_AutoShuttersControl.pm) eine liste aller zugehörigen dateien existieren, oder eine regex für exclude_from_update.

oder noch besser:
ich wünsche mir, dass der user nur die basis-modul-datei im attribut exclude_from_update eintragen muss und fhem verhindert automatisch auch das update aller zugehörigen dateien.  :)


dann sollte diese regex doch alles finden und trotzdem hoffentlich scharf genug sein:
exclude_from_update (FHEM/73_Auto|lib/FHEM/Automation/)ShuttersControl.*
FHEM: 6.0(SVN) => Pi3(buster)
IO: CUL433|CUL868|HMLAN|HMUSB2|HMUART
CUL_HM: CC-TC|CC-VD|SEC-SD|SEC-SC|SEC-RHS|Sw1PBU-FM|Sw1-FM|Dim1TPBU-FM|Dim1T-FM|ES-PMSw1-Pl
IT: ITZ500|ITT1500|ITR1500|GRR3500
WebUI [HMdeviceTools.js (hm.js)]: https://forum.fhem.de/index.php/topic,106959.0.html

betateilchen

Zitat von: frank am 03 März 2023, 10:34:55
oder noch besser:
ich wünsche mir, dass der user nur die basis-modul-datei im attribut exclude_from_update eintragen muss und fhem verhindert automatisch

Das "Problem" existiert erst, seit man in FHEM auf die wenig geniale Idee kam, FHEM-Module auf 728 einzelne kleine Codebrocken aufzubrechen und diese in einzelne Dateien in 273 Ordnern zu schreiben.

Die Mechanismen in "update" und auch das Attribut exclude_from_update sind eben sehr viel älter und überhaupt nicht auf solche Entwicklungen vorbereitet, geschweige denn angepasst. Für das, wofür sie ursprünglich gebaut wurden, funktionieren sie aber prima.

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

rudolfkoenig

Wenn die Liste am Anfang vollstaendig ist, dann sollte "attr global exclude_from_update ShuttersControl" reichen.

Zitatich wünsche mir, dass der user nur die basis-modul-datei im attribut exclude_from_update eintragen muss und fhem verhindert automatisch auch das update aller zugehörigen dateien.  :)
Dazu fallen mir auf Anhieb mehrere Probleme ein, wo ich keine einfache Loesung kenne.