From 76d223e99e201522055391baa1766b82ad9fca48 Mon Sep 17 00:00:00 2001 From: Walter Bender Date: Tue, 08 Mar 2011 12:50:45 +0000 Subject: work around dbus exception when getting Hal object --- (limited to 'TurtleArt') diff --git a/TurtleArt/tautils.py b/TurtleArt/tautils.py index eb12747..23f0080 100644 --- a/TurtleArt/tautils.py +++ b/TurtleArt/tautils.py @@ -790,20 +790,27 @@ def find_blk_below(blk, name): def get_hardware(): """ Determine whether we are using XO 1.0, 1.5, or "unknown" hardware """ bus = dbus.SystemBus() - - comp_obj = bus.get_object('org.freedesktop.Hal', - '/org/freedesktop/Hal/devices/computer') - dev = dbus.Interface(comp_obj, 'org.freedesktop.Hal.Device') - if dev.PropertyExists('system.hardware.vendor') and \ - dev.PropertyExists('system.hardware.version'): - if dev.GetProperty('system.hardware.vendor') == 'OLPC': - if dev.GetProperty('system.hardware.version') == '1.5': - return XO15 + comp_obj = None + try: + comp_obj = bus.get_object('org.freedesktop.Hal', + '/org/freedesktop/Hal/devices/computer') + except dbus.exceptions.DBusException: + error_output('Unable to get dbus object \ +/org/freedesktop/Hal/devices/computer') + + if comp_obj is not None: + dev = dbus.Interface(comp_obj, 'org.freedesktop.Hal.Device') + if dev.PropertyExists('system.hardware.vendor') and \ + dev.PropertyExists('system.hardware.version'): + if dev.GetProperty('system.hardware.vendor') == 'OLPC': + if dev.GetProperty('system.hardware.version') == '1.5': + return XO15 + else: + return XO1 else: - return XO1 - else: - return UNKNOWN - elif os.path.exists('/etc/olpc-release') or \ + return UNKNOWN + + if os.path.exists('/etc/olpc-release') or \ os.path.exists('/sys/power/olpc-pm'): return XO1 else: -- cgit v0.9.1