def multiBuilder(self, options, settings, trees): rValue = {} directory = options.get("directory", os.path.join(settings["PORTAGE_CONFIGROOT"], USER_CONFIG_PATH, "sets")) name_pattern = options.get("name_pattern", "${name}") if not "$name" in name_pattern and not "${name}" in name_pattern: raise SetConfigError(_("name_pattern doesn't include ${name} placeholder")) greedy = get_boolean(options, "greedy", False) # look for repository path variables match = self._repopath_match.match(directory) if match: try: directory = self._repopath_sub.sub(trees["porttree"].dbapi.treemap[match.groupdict()["reponame"]], directory) except KeyError: raise SetConfigError(_("Could not find repository '%s'") % match.groupdict()["reponame"]) try: directory = _unicode_decode(directory, encoding=_encodings['fs'], errors='strict') # Now verify that we can also encode it. _unicode_encode(directory, encoding=_encodings['fs'], errors='strict') except UnicodeError: directory = _unicode_decode(directory, encoding=_encodings['fs'], errors='replace') raise SetConfigError( _("Directory path contains invalid character(s) for encoding '%s': '%s'") \ % (_encodings['fs'], directory)) if os.path.isdir(directory): directory = normalize_path(directory) for parent, dirs, files in os.walk(directory): try: parent = _unicode_decode(parent, encoding=_encodings['fs'], errors='strict') except UnicodeDecodeError: continue for d in dirs[:]: if d[:1] == '.': dirs.remove(d) for filename in files: try: filename = _unicode_decode(filename, encoding=_encodings['fs'], errors='strict') except UnicodeDecodeError: continue if filename[:1] == '.': continue if filename.endswith(".metadata"): continue filename = os.path.join(parent, filename)[1 + len(directory):] myname = name_pattern.replace("$name", filename) myname = myname.replace("${name}", filename) rValue[myname] = StaticFileSet( os.path.join(directory, filename), greedy=greedy, dbapi=trees["vartree"].dbapi) return rValue
def singleBuilder(cls, options, settings, trees): files = tuple(portage.util.shlex_split(options.get("files", ""))) if not files: raise SetConfigError(_("no files given")) debug = get_boolean(options, "debug", False) return LibraryFileConsumerSet(trees["vartree"].dbapi, files, debug=debug)
def singleBuilder(self, options, settings, trees): if not "filename" in options: raise SetConfigError(_("no filename specified")) greedy = get_boolean(options, "greedy", False) filename = options["filename"] # look for repository path variables match = self._repopath_match.match(filename) if match: try: filename = self._repopath_sub.sub(trees["porttree"].dbapi.treemap[match.groupdict()["reponame"]], filename) except KeyError: raise SetConfigError(_("Could not find repository '%s'") % match.groupdict()["reponame"]) return StaticFileSet(filename, greedy=greedy, dbapi=trees["vartree"].dbapi)
def singleBuilder(cls, options, settings, trees): debug = get_boolean(options, "debug", False) return PreservedLibraryConsumerSet(trees["vartree"].dbapi, debug=debug)
def _builderGetVisible(cls, options): return get_boolean(options, "only_visible", True)
def singleBuilder(cls, options, settings, trees): least_change = not get_boolean(options, "use_emerge_resolver", False) return cls(settings, trees["vartree"].dbapi, trees["porttree"].dbapi, least_change=least_change)
def singleBuilder(self, options, settings, trees): debug = get_boolean(options, "debug", False) return PackagesSystemSet(settings.profiles, debug=debug)