From 257307fbc11f1388279781e506f8bb3cee1369d2 Mon Sep 17 00:00:00 2001 From: Micke Nordin Date: Mon, 4 Jan 2021 14:48:50 +0100 Subject: [PATCH] Better error handling --- src/swayswitch | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/src/swayswitch b/src/swayswitch index de894c9..c565ace 100755 --- a/src/swayswitch +++ b/src/swayswitch @@ -25,7 +25,10 @@ class SwaySwitch(wx.Frame): # pylint: disable=no-member # Some xdg data self.home = os.environ.get('HOME') self.base_dirs = [] - pos_dirs = os.environ.get('XDG_DATA_DIRS').split(":") + xdg_dirs = os.environ.get('XDG_DATA_DIRS') + pos_dirs = [] + if xdg_dirs: + pos_dirs = xdg_dirs.split(":") if not pos_dirs: pos_dirs = [ "/usr/share", "/usr/local/share", self.home + "/.local/share", @@ -99,18 +102,17 @@ class SwaySwitch(wx.Frame): # pylint: disable=no-member def get_desktop_file(self, command): """From here we return first dektopfile""" desktop_file = None - for base_dir in [ - directory for directory in self.base_dirs if directory - ]: + for base_dir in self.base_dirs: directory = base_dir + "/applications" if os.path.exists(directory): - command = "grep -l {} {}/*.desktop".format(command, directory) + command = "grep -s -l {} {}/*.desktop".format(command, directory) process = subprocess.Popen(command, shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE) for data in [i for i in process.communicate() if i]: for result in data.decode().split('\n'): + print(result) desktop_file = result break return desktop_file @@ -123,7 +125,10 @@ class SwaySwitch(wx.Frame): # pylint: disable=no-member stdout=subprocess.PIPE, stderr=subprocess.PIPE) for data in [i.rstrip() for i in process.communicate() if i]: - icon_name = data.decode().split('=')[1] + try: + icon_name = data.decode().split('=')[1] + except IndexError: + return "" # Find icon dirs icon_dirs = [] for base_dir in [