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
This commit is contained in:
Bastian Blank 2012-01-11 20:42:40 +00:00
parent afadb6258a
commit a46a14199c
2 changed files with 36 additions and 28 deletions

View File

@ -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

View File

@ -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"