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
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
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.