From a46a14199c5e8a3e07c76d814a38f1c92b83cbaf Mon Sep 17 00:00:00 2001 From: Bastian Blank Date: Wed, 11 Jan 2012 20:42:40 +0000 Subject: [PATCH] debian/bin/gencontrol.py, debian/lib/python/debian_linux/config.py: Move config schema into gencontrol. svn path=/dists/trunk/linux-2.6/; revision=18499 --- debian/bin/gencontrol.py | 32 ++++++++++++++++++++++-- debian/lib/python/debian_linux/config.py | 32 +++++------------------- 2 files changed, 36 insertions(+), 28 deletions(-) diff --git a/debian/bin/gencontrol.py b/debian/bin/gencontrol.py index 8e4a7c1b9..d10a16dd4 100755 --- a/debian/bin/gencontrol.py +++ b/debian/bin/gencontrol.py @@ -7,15 +7,43 @@ import os import os.path import subprocess -from debian_linux.config import ConfigCoreHierarchy +from debian_linux import config from debian_linux.debian import * from debian_linux.gencontrol import Gencontrol as Base from debian_linux.utils import Templates, read_control class Gencontrol(Base): + config_schema = { + 'abi': { + 'ignore-changes': config.SchemaItemList(), + }, + 'base': { + 'modules': config.SchemaItemBoolean(), + }, + 'build': { + 'debug-info': config.SchemaItemBoolean(), + }, + 'description': { + 'parts': config.SchemaItemList(), + }, + 'image': { + 'bootloaders': config.SchemaItemList(), + 'configs': config.SchemaItemList(), + 'initramfs': config.SchemaItemBoolean(), + 'initramfs-generators': config.SchemaItemList(), + }, + 'relations': { + }, + 'xen': { + 'dom0-support': config.SchemaItemBoolean(), + 'flavours': config.SchemaItemList(), + 'versions': config.SchemaItemList(), + } + } + def __init__(self, config_dirs=["debian/config"], template_dirs=["debian/templates"]): - super(Gencontrol, self).__init__(ConfigCoreHierarchy(config_dirs), Templates(template_dirs), VersionLinux) + super(Gencontrol, self).__init__(config.ConfigCoreHierarchy(self.config_schema, config_dirs), Templates(template_dirs), VersionLinux) self.process_changelog() self.config_dirs = config_dirs diff --git a/debian/lib/python/debian_linux/config.py b/debian/lib/python/debian_linux/config.py index 07e21d206..ae1d1c4cf 100644 --- a/debian/lib/python/debian_linux/config.py +++ b/debian/lib/python/debian_linux/config.py @@ -87,40 +87,20 @@ class ConfigCoreDump(object): class ConfigCoreHierarchy(object): - schemas = { - 'abi': { - 'ignore-changes': SchemaItemList(), - }, + schema_base = { 'base': { 'arches': SchemaItemList(), 'enabled': SchemaItemBoolean(), 'featuresets': SchemaItemList(), 'flavours': SchemaItemList(), - 'modules': SchemaItemBoolean(), }, - 'build': { - 'debug-info': SchemaItemBoolean(), - }, - 'description': { - 'parts': SchemaItemList(), - }, - 'image': { - 'bootloaders': SchemaItemList(), - 'configs': SchemaItemList(), - 'initramfs': SchemaItemBoolean(), - 'initramfs-generators': SchemaItemList(), - }, - 'relations': { - }, - 'xen': { - 'dom0-support': SchemaItemBoolean(), - 'flavours': SchemaItemList(), - 'versions': SchemaItemList(), - } } - def __new__(cls, dirs=[]): - return cls.Reader(dirs, cls.schemas)() + def __new__(cls, schema, dirs=[]): + schema_complete = cls.schema_base.copy() + for key, value in schema.iteritems(): + schema_complete.setdefault(key, {}).update(value) + return cls.Reader(dirs, schema_complete)() class Reader(object): config_name = "defines"