configDB - Fehler bei migrate

Begonnen von fhainz, 26 April 2014, 12:50:00

Vorheriges Thema - Nächstes Thema

betateilchen

ok, dann nimm bitte die Version von gestern.

Ich habe hier aktuell keine Möglichkeit, Änderungen selbst zu testen, ich muss mir das in Ruhe anschauen.
Grundsätzlich hängt das Problem mit der gestern abend gebauten Änderung für die mehrzeiligen DEFs zusammen.

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

stromer-12

Ich habe folgende Änderung an dem heutigen Update durchgeführt, damit funktioniert es wieder bei mir.

        foreach my $l (@dbconfig) {
                $l =~ s/[\r\n]/\n/g;
                $l =~ s/\\\n/\n/g;
#               if($l =~ m/\\*$/) {           # Multiline commands
#                       $l =~ s/\\/\n/g;
#               }
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

betateilchen

ja, aber damit funktionieren die mehrzeiligen DEFs nicht mehr, falls Du welche in Deinem System hast.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

stromer-12

FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

stromer-12

Mehrmals gespeichert und neu gestartet.
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

betateilchen

Ich hatte übersehen, dass es eigentlich zwei Änderungen sind ;)

Sitze grade im Zug und werde mich unterwegs mal damit befassen. Dieses bescheuerte regexen von DEFs treibt mich langsam aber sicher zur Weissglut.

Danke erstmal für Deinen Tipp.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Irgendwie habe ich bei Deiner Änderung trotzdem Bauchschmerzen.

Im ersten regexp ersetzt Du alle \r oder \n durch \n was erstens für \n sinnlos ist und zweitens dazu führt, dass das Ganze dann auf nicht-unix-Systemen höchstwahrscheinlich nicht mehr funktionieren wird.

Im zweiten regexp ersetzt Du dann alle \ \n durch \n was durchaus im Sinne des Erfinders und das eigentlich gewollte Ergebnis ist.

Irgendwie muss ich das noch umstricken. Es mag sein, dass Deine Änderung auf bestehenden Installationen funktioniert, aber bei der erstmaligen Migration geht das vermutlich daneben.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

betateilchen

Ich hab das jetzt mal ausgiebig getestet und Deine Variante eingecheckt. Mal sehen, wann die nächsten karierten Maiglöckchen mit Backslash auftauchen  :P
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!

stromer-12

Es braucht eigentlich nur eine Ersetzung:

$l =~ s/\\(\r\n|\n)$/\n/g;
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL

stromer-12

#54
Zitat von: stromer-12 am 15 Mai 2014, 21:40:33
Es braucht eigentlich nur eine Ersetzung:

$l =~ s/\\(\r\n|\n)$/\n/g;

Mac Zeilenende fehlt noch

$l =~ s/\\(\r\n|\n|\r)/\n/g;
FHEM (SVN) auf RPi1B mit HMser | ESPLink
FHEM (SVN) virtuell mit HMLAN | HMUSB | CUL