ver_linux: loadkeys, look for numerical input, not field number

'loadkeys -h' no longer prints the version number across all distros,
despite the claim to do so in the manpage, which I found to be the case
on a Debian Linux system.

The proposed implementation utilises the output of 'loadkeys -V' to
acquire the version of both 'Kbd' and 'Console-tools'.

Tested on:
Gentoo Linux
Debian 6.0.10
Oracle Linux Server release 7.1

Rely on regex to find the version number, rather than rely on numerical input to be found in a particular input field.

Signed-off-by: Alexander Kapshuk <alexander.kapshuk@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Alexander Kapshuk 2015-10-12 21:39:58 +03:00 committed by Greg Kroah-Hartman
parent be6bb51a9f
commit 7a343234ed
1 changed files with 6 additions and 7 deletions

View File

@ -147,13 +147,12 @@ awk '/tools/{
substr($0,RSTART,RLENGTH))
}'
# Kbd needs 'loadkeys -h',
loadkeys -h 2>&1 | awk \
'(NR==1 && ($3 !~ /option/)) {print "Kbd ", $3}'
# while console-tools needs 'loadkeys -V'.
loadkeys -V 2>&1 | awk \
'(NR==1 && ($2 ~ /console-tools/)) {print "Console-tools ", $3}'
loadkeys -V 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
match($0, /[0-9]+([.]?[0-9]+)+/)
$0 = substr($0,RSTART,RLENGTH)
printf("Kbd\t\t\t%s\nConsole-tools\t\t%s\n",$0,$0)
}'
oprofiled --version 2>&1 | awk \
'(NR==1 && ($2 == "oprofile")) {print "oprofile ", $3}'