[yocto] [[yocto-autobuilder][PATCHv2] 11/15] autobuilder/lib/ABTools.py: Add get_lsb_distro function
Aníbal Limón
anibal.limon at linux.intel.com
Tue Jun 21 16:07:48 PDT 2016
Try to get Linux distribution ID using lsb_release if lsb_release
isn't installed use information provided by linux_distribution()
method in platform returns "DISTRONAME-VERSION".
Signed-off-by: Aníbal Limón <anibal.limon at linux.intel.com>
---
.../site-packages/autobuilder/lib/ABTools.py | 29 ++++++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/lib/python2.7/site-packages/autobuilder/lib/ABTools.py b/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
index 1e09de7..9ff1bc8 100644
--- a/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
+++ b/lib/python2.7/site-packages/autobuilder/lib/ABTools.py
@@ -15,6 +15,9 @@ import time
import json
import codecs
+import subprocess
+import platform
+
from autobuilder.config import YOCTO_ABBASE
def capitalize(word):
@@ -48,3 +51,29 @@ def save_error_report(buildername, buildnumber, report, report_type):
(report_type, int(time.time())))
with codecs.open(filename, 'w', 'utf-8') as f:
json.dump(report, f, indent=4, sort_keys=True)
+
+def get_lsb_distro():
+ """
+ Try to get Linux distribution ID using lsb_release if lsb_release
+ isn't installed use information provided by linux_distribution()
+ method in platform returns "DISTRONAME-VERSION".
+ """
+
+ lsb_distro = None
+
+ try:
+ output = subprocess.check_output("lsb_release -ir", shell=True)
+
+ lines = output.splitlines()
+
+ # Output example:
+ # Distributor ID:\tDebian
+ # Release:\t8.4
+ distro_name = lines[0].split(':')[1].strip()
+ version = lines[1].split(':')[1].strip()
+
+ lsb_distro = "%s-%s" % (distro_name, version)
+ except Exception as e:
+ lsb_distro = "%s-%s" % platform.linux_distribution()[0:2]
+
+ return lsb_distro
--
2.1.4
More information about the yocto
mailing list