]> jfr.im git - erebus.git/blobdiff - config.py
* - change old code to use newer cfg.getboolean instead of bool(int())
[erebus.git] / config.py
index 5f350612efb3aeea941ce5734a8e5806c885f48b..6abad40d280df0145529a5e4c2fefaadd772ba58 100644 (file)
--- a/config.py
+++ b/config.py
@@ -5,7 +5,7 @@ import ConfigParser
 
 class Config(object):
        def __init__(self, filename, writeout=True):
-               self.__dict__['config'] = ConfigParser.SafeConfigParser()
+               self.__dict__['config'] = ConfigParser.RawConfigParser()
                self.__dict__['filename'] = filename
                self.__dict__['writeout'] = writeout
                self.config.read(filename)
@@ -16,6 +16,9 @@ class Config(object):
        def __setattr__(self, key, value):
                self.config.set('erebus', key, value)
 
+       def __getitem__(self, section): #!! READ-ONLY !!
+               return {item: self.config.get(section, item) for item in self.config.options(section)}
+
        def level(self, cmd):
                return self.config.get('levels', cmd)
 
@@ -30,6 +33,12 @@ class Config(object):
                        return self.config.get(section, key)
                except:
                        return default
+       def getboolean(self, section, key):
+               val = self.get(section, key, False)
+               if val == False or val == "0" or val.lower() == "false" or val.strip() == "":
+                       return False
+               else:
+                       return True
 
        def set(self, section, key, value):
                self.config.set(section, key, value)
@@ -41,10 +50,15 @@ class Config(object):
        def __del__(self):
                if self.writeout: self.write()
 
+def setup(fn='bot.config', writeout=True):
+       return Config(fn, writeout)
 
 if __name__ == '__main__':
        import sys
        cfg = Config(sys.argv[1], False)
 
-       for k, v in cfg.items():
-               print k, '=', v
+       for s in cfg.config.sections():
+               for k, v in cfg.items(s):
+                       print "[%r][%r] = %r" % (s, k, v)
+#      for k, v in cfg.items():
+#              print 'erebus.'+k, '=', v