annotate pyikriam/lconf.py @ 232:978a949602e5

Auto-update Scientists numbers for Academy. Refined the rules for safehouse, the safe house must be same or higher level then Town Hall. Make people very happy, when the townHall is less then 16. Build museum first then tavern THG: changed warfare.pl
author "Rex Tsai <chihchun@kalug.linux.org.tw>"
date Thu, 06 Nov 2008 20:31:05 +0800
parents d4b7d8f51e9f
children
rev   line source
158
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
1 import os, string
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
2 import re
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
3
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
4 _user_home = os.environ['HOME']
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
5 dfl_profile = os.path.join(_user_home, '.eagleeye.pm')
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
6 _reo_assign = re.compile('^\\$::([_a-zA-Z][_a-zA-Z0-9]+) *= *([\'"][^"]*[\'"]).*$')
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
7
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
8 def _real_load_conf(conf_o):
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
9 confs = [_reo_assign.match(line)
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
10 for line in conf_o
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
11 if line.startswith('$::')]
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
12 cd = dict([(mo.group(1), eval(mo.group(2)))
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
13 for mo in confs if mo])
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
14 return cd
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
15
64
19d2a7b175b3 Load configure data from .eagleeye.pm
kevin@localhost.localdomain
parents:
diff changeset
16 class LoadConfigfile(object):
158
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
17 def __init__(self, profile=dfl_profile):
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
18 prof_o = open(profile, 'r')
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
19 self.cd = _real_load_conf(prof_o)
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
20 pass
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
21 pass
64
19d2a7b175b3 Load configure data from .eagleeye.pm
kevin@localhost.localdomain
parents:
diff changeset
22
158
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
23 if __name__ == '__main__':
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
24 from StringIO import StringIO
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
25 conf = '''
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
26 $::user = "alsfjsf"; #lsfjslf
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
27 $::server = "fkljalfasf"; # sfjslf
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
28 $::pass = "lsfjslfsf";
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
29 '''
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
30 conf_o = StringIO(conf)
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
31 cd = _real_load_conf(conf_o)
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
32 print cd
d4b7d8f51e9f More exactly parser for $HOME/.eagleeye.pm
Thinker K.F. Li <thinker@branda.to>
parents: 64
diff changeset
33 pass