diff options
Diffstat (limited to 'pym/_emerge/Package.py')
-rw-r--r-- | pym/_emerge/Package.py | 31 |
1 files changed, 16 insertions, 15 deletions
diff --git a/pym/_emerge/Package.py b/pym/_emerge/Package.py index 9f210570d..dcc6a0c46 100644 --- a/pym/_emerge/Package.py +++ b/pym/_emerge/Package.py @@ -237,25 +237,26 @@ class Package(Task): return True - def accepted_keyword(self): - """returns the keyword used from the ebuild's KEYWORDS string""" + def get_keyword_mask(self): + """returns None, 'missing', or 'unstable'.""" - missing, _keywords = \ - self.root_config.settings._getRawMissingKeywords( - self.cpv, self.metadata) - unmasks = self.root_config.settings._getPKeywords( + missing = self.root_config.settings._getRawMissingKeywords( self.cpv, self.metadata) + if not missing: + return None + if '**' in missing: - return '**' - if missing: # keywords to evaluate - for keyword in _keywords + unmasks: - if keyword == '**': - return keyword - used_keyword = '~' + keyword - if used_keyword in missing: - return used_keyword - return '' + return 'missing' + + global_accept_keywords = frozenset( + self.root_config.settings.get("ACCEPT_KEYWORDS", "").split()) + + for keyword in missing: + if keyword.lstrip("~") in global_accept_keywords: + return 'unstable' + + return 'missing' def isHardMasked(self): """returns a bool if the cpv is in the list of |