From f0d194c63d80f1dfa4f85d77d9c41e1dbda74173 Mon Sep 17 00:00:00 2001 From: markusbloch Date: Tue, 12 Jan 2016 18:51:31 +0000 Subject: [PATCH] version: use $0 to read $Id$ direct from fhem.pl, code optimizations git-svn-id: https://svn.fhem.de/fhem/trunk@10475 2b470e98-0d58-463d-a4d8-8e2adae1ed80 --- fhem/FHEM/98_version.pm | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/fhem/FHEM/98_version.pm b/fhem/FHEM/98_version.pm index 167b9b993..102fd4650 100755 --- a/fhem/FHEM/98_version.pm +++ b/fhem/FHEM/98_version.pm @@ -16,14 +16,14 @@ CommandVersion($$) { my ($cl, $param) = @_; - my @ret = ("# $cvsid") ; - push @ret, cfgDB_svnId() if(configDBUsed()); - my $max = 7 ; # length("fhem.pl") = 7 + my @ret; + my $max = 0; my $modpath = (exists($attr{global}{modpath}) ? $attr{global}{modpath} : ""); - foreach my $m (keys %INC) - { - next unless($INC{$m} =~ /^$modpath.FHEM/ or $INC{$m} =~ /^FHEM/); # configDB - my $fn = $INC{$m}; + my @files = map {$INC{$_}} keys %INC; + push @files, $0; # path to fhem.pl + push @ret, cfgDB_svnId() if(configDBUsed()); + foreach my $fn (@files) { + next unless($fn =~ /^$modpath.?FHEM/ or $fn =~ /(?:^FHEM|fhem.pl$)/); # configDB my $mod_name = ($fn=~ /[\/\\]([^\/\\]+)$/ ? $1 : $fn); next if($param && $mod_name !~ /$param/); next if(grep(/$mod_name/, @ret)); @@ -37,7 +37,7 @@ CommandVersion($$) if(!open(FH, $fn)) { $line = "$fn: $!"; if(configDBUsed()){ - Log 4, "Looking for module $m in configDB to find SVN Id"; + Log 4, "Looking for module $mod_name in configDB to find SVN Id"; $line = cfgDB_Fileversion($fn,$line); } } else { @@ -75,8 +75,10 @@ sub version_sortModules($$) my @a_vals = split(' ', $a); my @b_vals = split(' ', $b); - return -1 if($a_vals[0] eq "fhem.pl"); # fhem.pl always at top - + # fhem.pl always at top + return -1 if($a_vals[0] eq "fhem.pl"); + return 1 if($b_vals[0] eq "fhem.pl"); + $a_vals[0] =~ s/^\d\d_//; $b_vals[0] =~ s/^\d\d_//;