]>
Commit | Line | Data |
---|---|---|
931c88a4 | 1 | # Erebus IRC bot - Author: John Runyon |
2 | # "Config" class (reading/providing access to bot.config) | |
3 | ||
b25d4368 | 4 | import ConfigParser |
5 | ||
6 | class Config(object): | |
b25d4368 | 7 | def __init__(self, filename, writeout=True): |
f0118d05 | 8 | self.__dict__['config'] = ConfigParser.RawConfigParser() |
b25d4368 | 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 | |
c715235b | 28 | def get(self, section, key, default=None): |
29 | try: | |
30 | return self.config.get(section, key) | |
31 | except: | |
32 | return default | |
c0eee1b4 | 33 | |
34 | def set(self, section, key, value): | |
35 | self.config.set(section, key, value) | |
36 | ||
b25d4368 | 37 | def write(self): |
a12f7519 | 38 | with open(self.filename, 'wb') as configfile: |
b25d4368 | 39 | self.config.write(configfile) |
a4eacae2 | 40 | |
b25d4368 | 41 | def __del__(self): |
42 | if self.writeout: self.write() | |
43 | ||
44 | ||
45 | if __name__ == '__main__': | |
46 | import sys | |
47 | cfg = Config(sys.argv[1], False) | |
48 | ||
0f8352dd | 49 | for s in cfg.config.sections(): |
50 | for k, v in cfg.items(s): | |
51 | print s+'.'+k, '=', v | |
52 | # for k, v in cfg.items(): | |
53 | # print 'erebus.'+k, '=', v |