[98_version.pm] patch zum Finden der svn rev

Begonnen von betateilchen, 18 Juli 2017, 14:00:47

Vorheriges Thema - Nächstes Thema

betateilchen

Hallo Markus,

ich schlage vor, die Funktion version_getRevFromControls() in 98_version.pm wie folgt zu ändern:


sub version_getRevFromControls(;$) {
  my ($name) = @_;
  $name //= "fhem";
  my $cf = "controls_$name.txt";
  my $filename = (-e "./$cf") ? "./$cf" : AttrVal("global","modpath",".")."/FHEM/$cf";
  my ($err, @content) = FileRead({FileName => $filename, ForceType => "file"});
  return $err if ($err);
  my $revision;
  foreach my $l (@content) {
    if($l =~ /^REV\s+(\S+.*)$/) {
      $revision = $1;
      last;
    }
  }
  return ($revision+1);
}


Damit wird die SVN revision Id auch dann korrekt gefunden, wenn jemand sein FHEM nicht per 98_update.pm aktualisiert, sondern z.B. per "svn update"

Hier wird stillschweigend vorausgesetzt, dass eine REV Id immer in der ersten Zeile des control_files steht. Ggf. kann/muss man noch die bisher vorhandene Iteration über das array @content einbauen. edit: loop in patch eingebaut
-----------------------
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 Udo,

ich habe deinen Patch übernommen mit zwei Änderungen:

- Rückgabe von undef, sollte controls_fhem.txt nicht geöffnet werden können. Fehlermeldung wird im Log ausgegeben.
- Keine Addition von +1 auf die Revision, da dieses ja bereits in statistics2.cgi gemacht wird. Das möchte ich auch nicht in 98_version.pm machen sondern eben in statistics2.cgi.

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

Zitat von: Markus Bloch am 18 Juli 2017, 22:51:16
- Rückgabe von undef, sollte controls_fhem.txt nicht geöffnet werden können. Fehlermeldung wird im Log ausgegeben.

ok.

Zitat von: Markus Bloch am 18 Juli 2017, 22:51:16
- Keine Addition von +1 auf die Revision, da dieses ja bereits in statistics2.cgi gemacht wird. Das möchte ich auch nicht in 98_version.pm machen sondern eben in statistics2.cgi.

Es gibt keinerlei Zusammenhang zwischen 98_version.pm und statistics2.cgi oder 98_fheminfo.pm. 98_fheminfo.pm ermittelt die Id selbst und in statistics2.cgi wird dann auf den übertragenen Wert 1 aufaddiert. Eigentlich wäre es besser gewesen, diese Korrektur in 98_fheminfo vorzunehmen, aber nun ist es eben so.

Der Vorschlag mit der um 1 erhöhten Rückgabe von 98_version.pm war das Resultat Deiner Erkenntnis, dass die in controls_fhem.txt enthaltene REV Information bei genauer Betrachtung immer um 1 zu niedrig ist.
-----------------------
Formuliere die Aufgabe möglichst einfach und
setze die Lösung richtig um - dann wird es auch funktionieren.
-----------------------
Lesen gefährdet die Unwissenheit!