[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