Some distros put to optional LSB vars n/a, so detect that and remove it.
SUSE uses lsb_release for quite a lot of versions I've been told so depend only on lsb for SuSE [the files things was untested in SUSE anyways]
This commit is contained in:
parent
79c5b5d0e2
commit
9a70ab0218
|
@ -20,6 +20,7 @@
|
||||||
import sys
|
import sys
|
||||||
import os
|
import os
|
||||||
import time
|
import time
|
||||||
|
import sre
|
||||||
from calendar import timegm
|
from calendar import timegm
|
||||||
|
|
||||||
import common.xmpp
|
import common.xmpp
|
||||||
|
@ -49,9 +50,7 @@ distro_info = {
|
||||||
'Slackware Linux': '/etc/slackware-version',
|
'Slackware Linux': '/etc/slackware-version',
|
||||||
'Solaris/Sparc': '/etc/release',
|
'Solaris/Sparc': '/etc/release',
|
||||||
'Sun JDS': '/etc/sun-release',
|
'Sun JDS': '/etc/sun-release',
|
||||||
'Novell SUSE Linux': '/etc/SuSE-release',
|
|
||||||
'PLD Linux': '/etc/pld-release',
|
'PLD Linux': '/etc/pld-release',
|
||||||
'SUSE Linux': '/etc/SuSE-release',
|
|
||||||
'Yellow Dog Linux': '/etc/yellowdog-release',
|
'Yellow Dog Linux': '/etc/yellowdog-release',
|
||||||
# many distros use the /etc/redhat-release for compatibility
|
# many distros use the /etc/redhat-release for compatibility
|
||||||
# so Redhat is the last
|
# so Redhat is the last
|
||||||
|
@ -82,6 +81,9 @@ def get_os_info():
|
||||||
output = child_stdout.readline().strip()
|
output = child_stdout.readline().strip()
|
||||||
child_stdout.close()
|
child_stdout.close()
|
||||||
child_stdin.close()
|
child_stdin.close()
|
||||||
|
# some distros put n/a in places so remove them
|
||||||
|
pattern = sre.compile(r' n/a', sre.IGNORE_CASE)
|
||||||
|
output = sre.sub(pattern, '', output)
|
||||||
return output
|
return output
|
||||||
# lsb_release executable not available, so parse files
|
# lsb_release executable not available, so parse files
|
||||||
for distro_name in distro_info:
|
for distro_name in distro_info:
|
||||||
|
|
Loading…
Reference in New Issue