Mercurial > eagle-eye
view pyikriam/lconf.py @ 158:d4b7d8f51e9f
More exactly parser for $HOME/.eagleeye.pm
author | Thinker K.F. Li <thinker@branda.to> |
---|---|
date | Sat, 01 Nov 2008 16:35:24 +0800 |
parents | 19d2a7b175b3 |
children |
line wrap: on
line source
import os, string import re _user_home = os.environ['HOME'] dfl_profile = os.path.join(_user_home, '.eagleeye.pm') _reo_assign = re.compile('^\\$::([_a-zA-Z][_a-zA-Z0-9]+) *= *([\'"][^"]*[\'"]).*$') def _real_load_conf(conf_o): confs = [_reo_assign.match(line) for line in conf_o if line.startswith('$::')] cd = dict([(mo.group(1), eval(mo.group(2))) for mo in confs if mo]) return cd class LoadConfigfile(object): def __init__(self, profile=dfl_profile): prof_o = open(profile, 'r') self.cd = _real_load_conf(prof_o) pass pass if __name__ == '__main__': from StringIO import StringIO conf = ''' $::user = "alsfjsf"; #lsfjslf $::server = "fkljalfasf"; # sfjslf $::pass = "lsfjslfsf"; ''' conf_o = StringIO(conf) cd = _real_load_conf(conf_o) print cd pass