Bladeren bron

qvm-start-daemon: check if layout is parsed

Frédéric Pierret (fepitre) 4 jaren geleden
bovenliggende
commit
e39f280405
1 gewijzigde bestanden met toevoegingen van 8 en 5 verwijderingen
  1. 8 5
      qubesadmin/tools/qvm_start_daemon.py

+ 8 - 5
qubesadmin/tools/qvm_start_daemon.py

@@ -127,11 +127,14 @@ def set_keyboard_layout(vm):
         xkb_rules_names = subprocess.check_output(
             ['xprop', '-root', '_XKB_RULES_NAMES']).decode()
         xkb_parsed = re.match(xkb_re, xkb_rules_names)
-        xkb_layout = [x.split(',')[0] for x in xkb_parsed.groups()[2:4]]
-        # We keep all options
-        xkb_layout.append(xkb_parsed.group(5))
-        keyboard_layout = '+'.join(xkb_layout)
-        vm.features['keyboard-layout'] = keyboard_layout
+        if xkb_parsed:
+            xkb_layout = [x.split(',')[0] for x in xkb_parsed.groups()[2:4]]
+            # We keep all options
+            xkb_layout.append(xkb_parsed.group(5))
+            keyboard_layout = '+'.join(xkb_layout)
+            vm.features['keyboard-layout'] = keyboard_layout
+        else:
+            vm.log.warning('Failed to parse layout for %s', vm)
     except subprocess.CalledProcessError as e:
         vm.log.warning('Failed to set layout for %s: %s', vm, str(e))