[kernel] r15565 - in dists/trunk/linux-2.6/debian: bin lib/python/debian_linux
Bastian Blank
waldi at alioth.debian.org
Tue Apr 27 08:43:43 UTC 2010
Author: waldi
Date: Tue Apr 27 08:43:41 2010
New Revision: 15565
Log:
* debian/bin/kconfig.py: Add option overrides.
* debian/lib/python/debian_linux/kconfig.py:
Add set method for externaly parsed options.
Modified:
dists/trunk/linux-2.6/debian/bin/kconfig.py
dists/trunk/linux-2.6/debian/lib/python/debian_linux/kconfig.py
Modified: dists/trunk/linux-2.6/debian/bin/kconfig.py
==============================================================================
--- dists/trunk/linux-2.6/debian/bin/kconfig.py Tue Apr 27 08:11:10 2010 (r15564)
+++ dists/trunk/linux-2.6/debian/bin/kconfig.py Tue Apr 27 08:43:41 2010 (r15565)
@@ -1,13 +1,37 @@
#!/usr/bin/env python
-import optparse, os.path, sys
+import optparse
+import os.path
+import re
+import sys
+
from debian_linux.kconfig import *
-def merge(output, *config):
+def merge(output, configs, overrides):
kconfig = KconfigFile()
- for c in config:
+ for c in configs:
kconfig.read(file(c))
+ for key, value in overrides.iteritems():
+ kconfig.set(key, value)
file(output, "w").write(str(kconfig))
+def opt_callback_dict(option, opt, value, parser):
+ match = re.match('^\s*(\S+)=(\S+)\s*$', value)
+ if not match:
+ raise optparse.OptionValueError('not key=value')
+ dest = option.dest
+ data = getattr(parser.values, dest)
+ data[match.group(1)] = match.group(2)
+
if __name__ == '__main__':
- sys.exit(merge(*sys.argv[1:]))
+ parser = optparse.OptionParser(usage = "%prog [OPTION]... FILE...")
+ parser.add_option('-o', '--override',
+ action='callback',
+ callback=opt_callback_dict,
+ default={},
+ dest='overrides',
+ help="Override option",
+ type='string')
+ options, args = parser.parse_args()
+
+ merge(args[0], args[1:], options.overrides)
Modified: dists/trunk/linux-2.6/debian/lib/python/debian_linux/kconfig.py
==============================================================================
--- dists/trunk/linux-2.6/debian/lib/python/debian_linux/kconfig.py Tue Apr 27 08:11:10 2010 (r15564)
+++ dists/trunk/linux-2.6/debian/lib/python/debian_linux/kconfig.py Tue Apr 27 08:43:41 2010 (r15565)
@@ -55,19 +55,22 @@
i = line.find('=')
option = line[7:i]
value = line[i+1:]
- if value in ('y', 'm'):
- entry = EntryTristate(option, value)
- else:
- entry = EntryString(option, value)
- self[option] = entry
+ self.set(option, value)
elif line.startswith("# CONFIG_"):
option = line[9:-11]
- self[option] = EntryTristate(option)
+ self.set(option, 'n')
elif line.startswith("#") or not line:
pass
else:
raise RuntimeError, "Can't recognize %s" % line
+ def set(self, key, value):
+ if value in ('y', 'm', 'n'):
+ entry = EntryTristate(key, value)
+ else:
+ entry = EntryString(key, value)
+ self[key] = entry
+
def str_iter(self):
for key, value in self.iteritems():
yield str(value)
More information about the Kernel-svn-changes
mailing list