[kernel] r13162 - in people/waldi/utils/kconfigeditor2: bin lib/kconfigeditor/kconfig/menu
Bastian Blank
waldi at alioth.debian.org
Tue Mar 17 19:24:55 UTC 2009
Author: waldi
Date: Tue Mar 17 19:22:12 2009
New Revision: 13162
Log:
Cleanup menu reading.
Modified:
people/waldi/utils/kconfigeditor2/bin/process.py
people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py
Modified: people/waldi/utils/kconfigeditor2/bin/process.py
==============================================================================
--- people/waldi/utils/kconfigeditor2/bin/process.py (original)
+++ people/waldi/utils/kconfigeditor2/bin/process.py Tue Mar 17 19:22:12 2009
@@ -12,9 +12,9 @@
for filename, data in package.items():
kernelarch = data['kernelarch']
if kernelarch:
- menufiles = menu.files_arch[kernelarch].itervalues()
+ menufiles = menu.arch(kernelarch)
else:
- menufiles = menu.files_all.itervalues()
+ menufiles = menu
filename = os.path.join(config_output, filename)
filename_tmp = filename + '.tmp'
Modified: people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py
==============================================================================
--- people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py (original)
+++ people/waldi/utils/kconfigeditor2/lib/kconfigeditor/kconfig/menu/all.py Tue Mar 17 19:22:12 2009
@@ -5,41 +5,47 @@
from . import MenuEntrySource
from .file import Parser
+
class All(object):
def __init__(self, root, arches):
- self.files = {}
- self.filenames_all = []
- self.filenames_arch = {}
+ self.root = root
+
+ self._files = {}
+ self._filenames = set()
+ self._filenames_arch = {}
for arch in arches:
+ self._filenames_arch[arch] = set()
+
work = ["arch/%s/Kconfig" % arch]
- self.filenames_arch[arch] = []
while work:
filename = work.pop(0)
filename_list = filename.split('/')
- self.filenames_arch[arch].append(filename)
- if not (filename_list[0] == 'arch' or filename_list[0] == 'drivers' and filename_list[1] in arches):
- self.filenames_all.append(filename)
+ if filename_list[0] == 'arch' or filename_list[0] == 'drivers' and filename_list[1] in arches:
+ self._filenames_arch[arch].add(filename)
+ else:
+ self._filenames.add(filename)
- if filename in self.files:
- f = self.files[filename]
+ if filename in self._files:
+ f = self._files[filename]
else:
- f = self.files.setdefault(filename, Parser()(file(os.path.join(root, filename)), filename))
+ f = self._files.setdefault(filename, self.read(filename))
for i in f:
if isinstance(i, MenuEntrySource):
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_arch[arch]:
- f[i] = self.files[i]
- self.files_arch[arch] = f
+ def __iter__(self):
+ for filename in self._filenames:
+ yield self._files[filename]
+
+ def arch(self, arch):
+ for filename in self._filenames_arch[arch]:
+ yield self._files[filename]
+ for filename in self._filenames:
+ yield self._files[filename]
+ def read(self, filename):
+ return Parser()(file(os.path.join(self.root, filename)), filename)
More information about the Kernel-svn-changes
mailing list