]> jfr.im git - erebus.git/blame - config.py
add nick change tracking
[erebus.git] / config.py
CommitLineData
931c88a4 1# Erebus IRC bot - Author: John Runyon
2# "Config" class (reading/providing access to bot.config)
3
b25d4368 4import ConfigParser
5
6class Config(object):
b25d4368 7 def __init__(self, filename, writeout=True):
8 self.__dict__['config'] = ConfigParser.SafeConfigParser()
9 self.__dict__['filename'] = filename
10 self.__dict__['writeout'] = writeout
11 self.config.read(filename)
12
13 def __getattr__(self, key):
14 return self.config.get('erebus', key)
15
16 def __setattr__(self, key, value):
17 self.config.set('erebus', key, value)
18
b2a896c8 19 def level(self, cmd):
20 return self.config.get('levels', cmd)
21
22 def setlevel(self, cmd, level):
23 self.config.set('levels', cmd, level)
24
db50981b 25 def items(self, section='erebus'):
26 return self.config.items(section)
b25d4368 27
c0eee1b4 28 def get(self, section, key):
29 return self.config.get(section, key)
30
31 def set(self, section, key, value):
32 self.config.set(section, key, value)
33
b25d4368 34 def write(self):
a12f7519 35 with open(self.filename, 'wb') as configfile:
b25d4368 36 self.config.write(configfile)
a4eacae2 37
b25d4368 38 def __del__(self):
39 if self.writeout: self.write()
40
41
42if __name__ == '__main__':
43 import sys
44 cfg = Config(sys.argv[1], False)
45
46 for k, v in cfg.items():
47 print k, '=', v