view pyikriam/lconf.py @ 258:689c4c9fa56b

fixed loop
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Tue, 18 Nov 2008 02:28:45 +0800
parents d4b7d8f51e9f
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