From f10c0e92853aef25a765925bd54608ced73cd164 Mon Sep 17 00:00:00 2001 From: René 'Necoro' Neumann Date: Thu, 17 Apr 2008 21:24:25 +0200 Subject: Fixed get_use_desc --- portato/backend/portage/system.py | 25 +++++++++++++++++-------- portato/backend/system_interface.py | 2 +- 2 files changed, 18 insertions(+), 9 deletions(-) (limited to 'portato/backend') diff --git a/portato/backend/portage/system.py b/portato/backend/portage/system.py index 0b5124c..78afa52 100644 --- a/portato/backend/portage/system.py +++ b/portato/backend/portage/system.py @@ -3,14 +3,14 @@ # File: portato/backend/portage/system.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2006-2007 René 'Necoro' Neumann +# Copyright (C) 2006-2008 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. # # Written by René 'Necoro' Neumann -from __future__ import absolute_import +from __future__ import absolute_import, with_statement import re, os, os.path import portage @@ -467,17 +467,24 @@ class PortageSystem (SystemInterface): # fill cache if needed if not self.use_descs and not self.local_use_descs: for dir in [self.settings.settings["PORTDIR"]] + self.settings.settings["PORTDIR_OVERLAY"].split(): + # read use.desc - with open(os.path.join(dir, "profiles/use.desc")) as f: + try: + f = open(os.path.join(dir, "profiles/use.desc")) for line in f: line = line.strip() if line and line[0] != '#': fields = [x.strip() for x in line.split(" - ",1)] if len(fields) == 2: self.use_descs[fields[0]] = fields[1] + except IOError: + pass + finally: + f.close() # read use.local.desc - with open(os.path.join(dir, "profiles/use.local.desc")) as f: + try: + f = open(os.path.join(dir, "profiles/use.local.desc")) for line in f: line = line.strip() if line and line[0] != '#': @@ -486,13 +493,15 @@ class PortageSystem (SystemInterface): subfields = [x.strip() for x in fields[1].split(" - ",1)] if len(subfields) == 2: self.local_use_descs[fields[0]].update([subfields]) + except IOError: + pass + finally: + f.close() # start - desc = self.use_descs.get(flag) + desc = self.use_descs.get(flag, "") if package is not None: if package in self.local_use_descs: - desc = self.local_use_descs[package].get(flag) + desc = self.local_use_descs[package].get(flag, desc) - if desc is None: return "" - return desc diff --git a/portato/backend/system_interface.py b/portato/backend/system_interface.py index 3c50675..c22c857 100644 --- a/portato/backend/system_interface.py +++ b/portato/backend/system_interface.py @@ -3,7 +3,7 @@ # File: portato/backend/system_interface.py # This file is part of the Portato-Project, a graphical portage-frontend. # -# Copyright (C) 2007 René 'Necoro' Neumann +# Copyright (C) 2007-2008 René 'Necoro' Neumann # This is free software. You may redistribute copies of it under the terms of # the GNU General Public License version 2. # There is NO WARRANTY, to the extent permitted by law. -- cgit v1.2.3-54-g00ecf