iro/config.py
branchdevel
changeset 220 602720314930
parent 188 4d6130d91e56
child 224 072de50834f9
--- a/iro/config.py	Sat Mar 10 19:00:12 2012 +0100
+++ b/iro/config.py	Sat Mar 10 19:01:31 2012 +0100
@@ -12,12 +12,13 @@
 
     def read(self,files):
         from offer import getProvider
-        ConfigParser.read(self, files)
+        r = ConfigParser.read(self, files)
         for s in self.sections():
             if s == "main":
                 main.validate(self.items(s))
             else:
                 getProvider("tmp", self.get(s,'typ'), self.items(s))
+        return r
 
     def reload_(self):
         for f in self.reloadList:
@@ -34,13 +35,14 @@
         self.must = must
         self.default = default
 
-class Config():
+class Config:
     def __init__(self, name):
         self.name = name
         self.options={
             "port":Option(partial(vInteger,minv=0),long="Port under that twisted is running",must=True),
             "dburl":Option(lambda x,y:x,long="Connection URL to database",must=True),
         }
+        self.order = ["dburl","port"]
         self._init=True
 
 
@@ -72,6 +74,23 @@
         else:
             return True
 
+    def sampleConf(self):
+        ret=[]
+        for o in self.order:
+            opt=self.options[o]
+            if opt.long:
+                ret.append("# "+opt.long)
+            if opt.must:
+                s= "%s = "%o
+                if opt.default is not None:
+                    s += str(opt.default)
+                ret.append(s)
+            else:
+                ret.append("# %s = %s"%(o,opt.default))
+            ret.append("")
+
+        return ["[%s]"%self.name,]+ret
+
 def readConfig():
     configParser.read(confFiles)
     configParser.reload()