ingo_weinzierl@23: #!/usr/bin/env python ingo_weinzierl@23: # -*- coding: utf-8 -*- ingo_weinzierl@23: # ingo_weinzierl@23: # (c) 2010 by Ingo Weinzierl bjoern@97: # (c) 2011 by Björn Ricks ingo_weinzierl@23: # ingo_weinzierl@23: # A python worklog-alike to log what you have 'getan' (done). ingo_weinzierl@23: # ingo_weinzierl@23: # This is Free Software licensed under the terms of GPLv3 or later. ingo_weinzierl@23: # For details see LICENSE coming with the source of 'getan'. ingo_weinzierl@23: # ingo_weinzierl@23: ingo_weinzierl@23: import logging ingo_weinzierl@23: import sys bjoern@67: from optparse import OptionParser ingo_weinzierl@23: ingo_weinzierl@23: import getan.config as config bjoern@109: from getan.backend import DEFAULT_DATABASE, Backend bjoern@113: from getan.view import ProjectList, EntryList bjoern@112: from getan.controller import GetanController ingo_weinzierl@23: ingo_weinzierl@23: logger = logging.getLogger() ingo_weinzierl@23: ingo_weinzierl@23: def main(): bjoern@67: bjoern@67: usage = "usage: %prog [options] [databasefile (default: " + \ bjoern@67: DEFAULT_DATABASE + ")]" bjoern@67: parser = OptionParser(usage=usage) bjoern@67: parser.add_option("-d", "--debug", action="store_true", dest="debug", bjoern@67: help="Set verbosity to debug") bjoern@67: parser.add_option("-l", "--logfile", dest="logfile", metavar="FILE", bjoern@67: help="Write log information to FILE [default: %default]", bjoern@67: default="getan.log") bjoern@67: (options, args) = parser.parse_args() bjoern@67: logargs = dict() bjoern@67: if options.debug: bjoern@67: logargs["level"] = logging.DEBUG bjoern@67: if options.logfile: bjoern@67: logargs["filename"] = options.logfile bjoern@67: config.initialize(**logargs) ingo_weinzierl@23: global logger ingo_weinzierl@23: bjoern@67: if len(args) > 0: bjoern@67: backend = Backend(args[0]) bjoern@67: logging.info("Use database '%s'." % args[0]) ingo_weinzierl@23: else: ingo_weinzierl@23: backend = Backend() ingo_weinzierl@23: logging.info("Use database '%s'." % DEFAULT_DATABASE) ingo_weinzierl@23: ingo@31: controller = GetanController(backend, ProjectList, EntryList) ingo@31: ingo@31: try: ingo_weinzierl@30: controller.main() bjoern@90: except KeyboardInterrupt: bjoern@90: pass ingo@31: finally: ingo@31: controller.shutdown() ingo_weinzierl@23: ingo_weinzierl@23: ingo_weinzierl@23: if __name__ == '__main__': ingo_weinzierl@23: main()