class ConfigFileSet(PackageSet): def __init__(self, filename): super(ConfigFileSet, self).__init__() self._filename = filename self.description = "Package set generated from %s" % self._filename self.loader = KeyListFileLoader(self._filename, ValidAtomValidator) def load(self): data, errors = self.loader.load() self._setAtoms(iter(data)) def singleBuilder(self, options, settings, trees): if not "filename" in options: raise SetConfigError(_("no filename specified")) return ConfigFileSet(options["filename"]) singleBuilder = classmethod(singleBuilder) def multiBuilder(self, options, settings, trees): rValue = {} directory = options.get("directory", os.path.join(settings["PORTAGE_CONFIGROOT"], USER_CONFIG_PATH)) name_pattern = options.get("name_pattern", "sets/package_$suffix") if not "$suffix" in name_pattern and not "${suffix}" in name_pattern: raise SetConfigError(_("name_pattern doesn't include $suffix placeholder")) for suffix in ["keywords", "use", "mask", "unmask"]: myname = name_pattern.replace("$suffix", suffix) myname = myname.replace("${suffix}", suffix) rValue[myname] = ConfigFileSet(os.path.join(directory, "package." + suffix)) return rValue multiBuilder = classmethod(multiBuilder)
class ConfigFileSet(PackageSet): def __init__(self, filename): super(ConfigFileSet, self).__init__() self._filename = filename self.description = "Package set generated from %s" % self._filename self.loader = KeyListFileLoader(self._filename, ValidAtomValidator) def load(self): data, errors = self.loader.load() self._setAtoms(iter(data)) def singleBuilder(self, options, settings, trees): if not "filename" in options: raise SetConfigError(_("no filename specified")) return ConfigFileSet(options["filename"]) singleBuilder = classmethod(singleBuilder) def multiBuilder(self, options, settings, trees): rValue = {} directory = options.get("directory", os.path.join(settings["PORTAGE_CONFIGROOT"], USER_CONFIG_PATH)) name_pattern = options.get("name_pattern", "sets/package_$suffix") if not "$suffix" in name_pattern and not "${suffix}" in name_pattern: raise SetConfigError(_("name_pattern doesn't include $suffix placeholder")) for suffix in ["keywords", "use", "mask", "unmask"]: myname = name_pattern.replace("$suffix", suffix) myname = myname.replace("${suffix}", suffix) rValue[myname] = ConfigFileSet(os.path.join(directory, "package."+suffix)) return rValue multiBuilder = classmethod(multiBuilder)
def __init__(self, filename): super(ConfigFileSet, self).__init__() self._filename = filename self.description = "Package set generated from %s" % self._filename self.loader = KeyListFileLoader(self._filename, ValidAtomValidator)