diff options
author | Walter Bender <walter.bender@gmail.com> | 2011-03-08 12:50:45 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2011-03-08 12:50:45 (GMT) |
commit | 76d223e99e201522055391baa1766b82ad9fca48 (patch) | |
tree | 89b3dd1482c8f416e78240db4a9a45cea06ed48f /TurtleArt | |
parent | 3e898b8b42b8e930e7e33fcfd89d9a4fafcbd18a (diff) |
work around dbus exception when getting Hal object
Diffstat (limited to 'TurtleArt')
-rw-r--r-- | TurtleArt/tautils.py | 33 |
1 files changed, 20 insertions, 13 deletions
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: |