[kernel-team] 06/86: Update.
debian-kernel at lists.debian.org
debian-kernel at lists.debian.org
Mon Dec 21 00:34:52 UTC 2015
This is an automated email from the git hooks/post-receive script.
benh pushed a commit to branch benh/kconfigeditor2
in repository kernel-team.
commit b70a9637d40cd3a404e7d5ebf91e5fcccfa31e21
Author: Bastian Blank <waldi at debian.org>
Date: Tue Mar 11 16:12:05 2008 +0000
Update.
svn path=/people/waldi/utils/kconfigeditor2/; revision=10800
---
.../lib/kconfigeditor/kconfig/menu/all.py | 10 ++-
.../lib/kconfigeditor/kconfig/menu/file.py | 18 ++++
.../lib/kconfigeditor/kconfig/package/files.py | 96 +++++++++++++++++++++-
3 files changed, 118 insertions(+), 6 deletions(-)
diff --git a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py
index 5fa8ae4..c9ddc69 100644
--- a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py
+++ b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py
@@ -5,7 +5,6 @@ from file import FileSource, Parser
class All(object):
def __init__(self, root, arches):
self.files = {}
- self.files_arch = {}
self.filenames_all = []
self.filenames_arch = {}
@@ -30,10 +29,13 @@ class All(object):
if isinstance(i, FileSource):
work.append(i.filename)
+ self.files_all = {}
+ for i in self.filenames_all:
+ self.files_all[i] = self.files[i]
+
+ self.files_arch = {}
for arch in arches:
- f = {}
- for i in self.filenames_all:
- f[i] = self.files[i]
+ f = self.files_all.copy()
for i in self.filenames_arch[arch]:
f[i] = self.files[i]
self.files_arch[arch] = f
diff --git a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py
index ed643a9..3f3e1f1 100644
--- a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py
+++ b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/file.py
@@ -4,6 +4,24 @@ class File(list):
def __init__(self, filename):
self.filename = filename
+ def __lt__(self, other):
+ return self.filename < other.filename
+
+ def __le__(self, other):
+ return self.filename <= other.filename
+
+ def __eq__(self, other):
+ return self.filename == other.filename
+
+ def __ne__(self, other):
+ return self.filename != other.filename
+
+ def __gt__(self, other):
+ return self.filename > other.filename
+
+ def __ge__(self, other):
+ return self.filename >= other.filename
+
class FileConfig(object):
def __init__(self, name):
self.name = name
diff --git a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
index ee30e1e..008115c 100644
--- a/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
+++ b/utils/kconfigeditor2/lib/kconfigeditor/kconfig/package/files.py
@@ -2,8 +2,11 @@ import os
from debian_linux.config import ConfigCoreHierarchy
+from kconfigeditor.kconfig.menu.file import FileConfig
+
class Files(dict):
def __init__(self, root):
+ self.kernelarch = {}
self.files = {}
self.filenames = {}
self.root = os.path.join(root, "debian/config")
@@ -17,10 +20,13 @@ class Files(dict):
if f in self.files:
f = self.files[f]
else:
- f = self.files.setdefault(f, File(None, f))
+ f = self.files.setdefault(f, File(file(os.path.join(self.root, f)), f))
r.append_file(f)
def _read_arch(self, arch):
+ config_entry = self.config.merge('base', arch)
+ self.kernelarch[arch,] = config_entry.get('kernel-arch', arch)
+
kconfig = self.check_config("%s/config" % arch, True, arch)
self.filenames[arch,] = kconfig
@@ -28,6 +34,7 @@ class Files(dict):
self._read_featureset(arch, featureset)
def _read_base(self):
+ self.kernelarch[()] = None
self.filenames[()] = self.check_config('config', True)
for arch in self.config['base',]['arches']:
@@ -38,6 +45,9 @@ class Files(dict):
if featureset != 'none':
return
+ config_entry = self.config.merge('base', arch, featureset)
+ self.kernelarch[arch, featureset] = config_entry.get('kernel-arch', arch)
+
kconfig = []
kconfig.extend(self.check_config("featureset-%s/config" % featureset, False, None, featureset))
kconfig.extend(self.check_config("%s/%s/config" % (arch, featureset), False, arch, featureset))
@@ -47,6 +57,9 @@ class Files(dict):
self._read_flavour(arch, featureset, flavour)
def _read_flavour(self, arch, featureset, flavour):
+ config_entry = self.config.merge('base', arch, featureset, flavour)
+ self.kernelarch[arch, featureset, flavour] = config_entry.get('kernel-arch', arch)
+
kconfig = []
kconfig.extend(self.check_config("%s/config.%s" % (arch, flavour), False, arch, None, flavour))
kconfig.extend(self.check_config("%s/%s/config.%s" % (arch, featureset, flavour), False, arch, featureset, flavour))
@@ -91,7 +104,86 @@ class FileList(object):
def append_file(self, item):
self._files.append(item)
-class File(object):
+class File(dict):
def __init__(self, fd, filename):
self.filename = filename
+ self.read(fd)
+
+ def _dump_file(self, fd, f):
+ ret = []
+ for i in f:
+ if isinstance(i, FileConfig):
+ e = self.get(i.name, None)
+ if e is not None:
+ ret.append(e)
+ if ret:
+ ret[0:0] = ["##", "## file: %s" % f.filename, "##"]
+ ret.append('')
+ return ret
+
+ def dump(self, root, menufiles):
+ fd = file(os.path.join(root, self.filename), 'w')
+ ret = []
+ for f in menufiles:
+ ret.extend(self._dump_file(fd, f))
+ for i in ret:
+ fd.write(str(i) + "\n")
+
+ def read(self, f):
+ for line in iter(f.readlines()):
+ line = line.strip()
+ if line.startswith("CONFIG_"):
+ i = line.find('=')
+ option = line[7:i]
+ value = line[i+1:]
+ if value in ('y', 'm'):
+ entry = FileEntryTristate(option, value)
+ else:
+ entry = FileEntryString(option, value)
+ self[option] = entry
+ elif line.startswith("# CONFIG_"):
+ option = line[9:-11]
+ self[option] = FileEntryTristate(option)
+ elif line.startswith("#") or not line:
+ pass
+ else:
+ raise RuntimeError, "Can't recognize %s" % line
+
+# TODO
+class FileEntryString(object):
+ __slots__ = "name", "value"
+
+ def __init__(self, name, value):
+ self.name = name
+ self.value = value
+
+ def __str__(self):
+ return "CONFIG_%s=%s" % (self.name, self.value)
+
+# TODO
+class FileEntryTristate(object):
+ __slots__ = "name", "value"
+
+ VALUE_NO = 0
+ VALUE_YES = 1
+ VALUE_MOD = 2
+
+ def __init__(self, name, value = None):
+ self.name = name
+ if value == 'n' or value is None:
+ self.value = self.VALUE_NO
+ elif value == 'y':
+ self.value = self.VALUE_YES
+ elif value == 'm':
+ self.value = self.VALUE_MOD
+
+ def __str__(self):
+ conf = "CONFIG_%s" % self.name
+ if self.value == self.VALUE_NO:
+ return "# %s is not set" % conf
+ elif self.value == self.VALUE_YES:
+ return "%s=y" % conf
+ elif self.value == self.VALUE_MOD:
+ return "%s=m" % conf
+
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/kernel/kernel-team.git
More information about the Kernel-svn-changes
mailing list