Move updatewrmapcache.py to scripts folder.
[philipp/winterrodeln/wrpylib.git] / scripts / updatewrmapcache.py
1 #!/usr/bin/python2.7
2 # -*- coding: iso-8859-15 -*-
3 """Updates the wrmappathcache and wrmappointcache tables (by calling wrpylib.wrmwcache.update_wrmapcache()).
4 Can be used in a python session or at the command line.
5
6 Command line usage:
7 $ python updatewrmapcache.py inifile1.ini ...
8
9 One or more .ini configuration files can be given.
10 At the end, the following entries have to be present:
11
12     [mysql]
13     host=localhost
14     dbname=philipp_winterrodeln_wiki
15     user_name=philipp_www
16     user_pass=YYYYYY
17 """
18
19 import sys
20 import ConfigParser
21 from sqlalchemy.engine import create_engine
22 import wrpylib.wrmwcache
23
24
25 def update_wrmapcache(inifile):
26     """
27     :param inifile: filename of an .ini file or a list of .ini files.
28     """
29     config = ConfigParser.SafeConfigParser()
30     config.read(inifile)
31
32     host = config.get('mysql', 'host')
33     dbname = config.get('mysql', 'dbname')
34     user = config.get('mysql', 'user_name')
35     passwd = config.get('mysql', 'user_pass')
36
37     engine = create_engine('mysql://{user}@{host}:3306/{dbname}?charset=utf8&passwd={passwd}&use_unicode=0'.format(host=host, dbname=dbname, user=user, passwd=passwd))
38     # "use_unicode=0": see: https://sourceforge.net/tracker/?func=detail&aid=2837134&group_id=22307&atid=374932
39     wrpylib.wrmwcache.update_wrmapcache(engine.connect())
40
41
42 if __name__ == '__main__':
43     if len(sys.argv) >= 2:
44         update_wrmapcache(sys.argv[1:])
45     else:
46         print 'Usage:\n{0} infile1.ini [inifile2.ini ...]'.format(sys.argv[0])
47         print 'See: http://www.winterrodeln.org/trac/wiki/ConfigIni'
48