annotate getan/main.py @ 464:2ab6fdde1010

Display licensing information with --version.
author Magnus Schieder <mschieder@intevation.de>
date Mon, 30 Apr 2018 14:13:05 +0200
parents 2707676cfd03
children 7fc3da3c100d
rev   line source
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
1 #!/usr/bin/env python
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
2 # -*- coding: utf-8 -*-
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
3 #
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
4 # (c) 2010 by Ingo Weinzierl <ingo.weinzierl@intevation.de>
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
5 # (c) 2011 by Björn Ricks <bjoern.ricks@intevation.de>
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
6 #
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
7 # A python worklog-alike to log what you have 'getan' (done).
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
8 #
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
9 # This is Free Software licensed under the terms of GPLv3 or later.
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
10 # For details see LICENSE coming with the source of 'getan'.
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
11 #
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
12
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
13 import logging
117
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
14 import os
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
15 import os.path
456
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
16 import argparse
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
17
184
f8a19dbc8231 Add version switch to getan
Björn Ricks <bjoern.ricks@intevation.de>
parents: 183
diff changeset
18 import getan
317
dc7c1a894e21 Fix codingstyle for pep8
Björn Ricks <bjoern.ricks@intevation.de>
parents: 184
diff changeset
19 import getan.config as config
184
f8a19dbc8231 Add version switch to getan
Björn Ricks <bjoern.ricks@intevation.de>
parents: 183
diff changeset
20
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
21 from getan.backend import DEFAULT_DATABASE, Backend
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
22 from getan.controller import GetanController
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
23
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
24 logger = logging.getLogger()
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
25
317
dc7c1a894e21 Fix codingstyle for pep8
Björn Ricks <bjoern.ricks@intevation.de>
parents: 184
diff changeset
26
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
27 def main():
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
28
456
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
29 usage = "%(prog)s [options] [databasefile (default: " + \
317
dc7c1a894e21 Fix codingstyle for pep8
Björn Ricks <bjoern.ricks@intevation.de>
parents: 184
diff changeset
30 DEFAULT_DATABASE + ")]"
464
2ab6fdde1010 Display licensing information with --version.
Magnus Schieder <mschieder@intevation.de>
parents: 458
diff changeset
31 version = "getan version %s, LICENSE GNU GPL v>=3" % getan.__version__
456
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
32
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
33 parser = argparse.ArgumentParser(prog='getan', usage=usage)
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
34 parser.add_argument('--version', action='version', version=version)
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
35 parser.add_argument(dest='filename', nargs='?',
457
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
36 help='[databasefile (default: %(default)s)]',
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
37 default=DEFAULT_DATABASE)
456
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
38 parser.add_argument('--init-only', action='store_true', dest='initonly',
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
39 help='create databasefile if necessary and exit')
457
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
40 parser.add_argument('-d', '--debug', action='store_const', dest='loglevel',
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
41 default=logging.INFO, const=logging.DEBUG,
456
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
42 help='set verbosity to debug')
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
43 parser.add_argument('-l', '--logfile', dest='logfile', metavar='FILE',
458
2707676cfd03 check source code style.
Magnus Schieder <mschieder@intevation.de>
parents: 457
diff changeset
44 help='''write log information to FILE [default:
2707676cfd03 check source code style.
Magnus Schieder <mschieder@intevation.de>
parents: 457
diff changeset
45 %(default)s]''', default='getan.log')
456
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
46
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
47 args = parser.parse_args()
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
48
457
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
49 config.initialize(args.loglevel, args.logfile)
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
50 global logger
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
51
458
2707676cfd03 check source code style.
Magnus Schieder <mschieder@intevation.de>
parents: 457
diff changeset
52 if args.filename != DEFAULT_DATABASE:
457
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
53 database = args.filename
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
54 else:
117
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
55 if os.path.isfile(DEFAULT_DATABASE):
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
56 database = os.path.abspath(DEFAULT_DATABASE)
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
57 else:
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
58 getan_dir = os.path.expanduser(os.path.join("~", ".getan"))
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
59 if not os.path.exists(getan_dir):
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
60 os.mkdir(getan_dir)
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
61 database = os.path.join(getan_dir, DEFAULT_DATABASE)
c5c877d6c1e3 Load and create default database for installed scripts
Björn Ricks <bjoern.ricks@intevation.de>
parents: 114
diff changeset
62
457
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
63 backend = Backend(database)
7fedbb73022e clean up source code
Magnus Schieder <mschieder@intevation.de>
parents: 456
diff changeset
64 logging.info("Using database '%s'." % database)
433
266634f3712a Improves command line options.
Bernhard Reiter <bernhard@intevation.de>
parents: 318
diff changeset
65
456
193a4a051660 Version: bumps to 2.3.dev1, ptparse to argparse Migration.
Magnus Schieder <mschieder@intevation.de>
parents: 433
diff changeset
66 if args.initonly:
433
266634f3712a Improves command line options.
Bernhard Reiter <bernhard@intevation.de>
parents: 318
diff changeset
67 return
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
68
318
27fc5f43a69b Move setting the ProjectList and EntryList instances into the controller
Björn Ricks <bjoern.ricks@intevation.de>
parents: 317
diff changeset
69 controller = GetanController(backend)
114
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
70
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
71 try:
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
72 controller.main()
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
73 except KeyboardInterrupt:
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
74 pass
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
75 finally:
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
76 controller.shutdown()
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
77
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
78
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
79 if __name__ == '__main__':
6df408534f3f Move getan.py to getan/main.py
Björn Ricks <bjoern.ricks@intevation.de>
parents:
diff changeset
80 main()
This site is hosted by Intevation GmbH (Datenschutzerklärung und Impressum | Privacy Policy and Imprint)