This commit is contained in:
Darko Poljak 2016-11-07 09:18:08 +01:00
commit bfded4d903
10 changed files with 194 additions and 149 deletions

View file

@ -23,65 +23,89 @@
import argparse
import logging
import os.path
import sys
log = logging.getLogger(__name__)
# Setup locale for calendar printing
# Setup locale to get Timezone information?
#print(locale.getlocale())
# print(locale.getlocale())
# Record tags
def parse_argv(argv, version):
parser = {}
parser['loglevel'] = argparse.ArgumentParser(add_help=False)
parser['loglevel'].add_argument('-d', '--debug',
help='set log level to debug', action='store_true',
parser['loglevel'].add_argument(
'-d', '--debug', help='set log level to debug', action='store_true',
default=False)
parser['loglevel'].add_argument('-v', '--verbose',
parser['loglevel'].add_argument(
'-v', '--verbose',
help='set log level to info, be more verbose',
action='store_true', default=False)
parser['main'] = argparse.ArgumentParser(description='ctt ' + version,
parents=[parser['loglevel']])
parents=[parser['loglevel']])
parser['sub'] = parser['main'].add_subparsers(title="Commands")
parser['listprojects'] = parser['sub'].add_parser('listprojects',
parents=[parser['loglevel']])
parser['listprojects'] = parser['sub'].add_parser(
'listprojects', parents=[parser['loglevel']])
parser['listprojects'].set_defaults(func=ListProjects.commandline)
parser['track'] = parser['sub'].add_parser('track',
parents=[parser['loglevel']])
parents=[parser['loglevel']])
parser['track'].set_defaults(func=Tracker.commandline)
parser['track'].add_argument("--sd", "--start", help="start date (default: first of this month, format: %s)" % ctt.DATEFORMAT_PLAIN,
parser['track'].add_argument(
"--sd", "--start",
help="start date (default: first of this month, format: %s)"
% ctt.DATEFORMAT_PLAIN,
nargs=1, dest="start")
parser['track'].add_argument("--ed", "--end", help="end date (default: last of this month, format: %s)" % ctt.DATEFORMAT_PLAIN,
parser['track'].add_argument(
"--ed", "--end",
help="end date (default: last of this month, format: %s)"
% ctt.DATEFORMAT_PLAIN,
nargs=1, default=None, dest="end")
parser['track'].add_argument("-n", "--no-comment", help="disable comment prompting after tracking",
parser['track'].add_argument(
"-n", "--no-comment", help="disable comment prompting after tracking",
action='store_false', dest="comment")
parser['track'].add_argument("project", help="project to track time for", nargs=1)
parser['track'].add_argument(
"project", help="project to track time for", nargs=1)
parser['report'] = parser['sub'].add_parser('report',
parents=[parser['loglevel']])
parents=[parser['loglevel']])
parser['report'].set_defaults(func=Report.commandline)
parser['report'].add_argument("project", help="project to report time for", nargs='*')
parser['report'].add_argument("--sd", "--start", help="start date (default: first of this month, format: %s)" % ctt.DATEFORMAT_PLAIN,
parser['report'].add_argument(
"project", help="project to report time for", nargs='*')
parser['report'].add_argument(
"--sd", "--start",
help="start date (default: first of this month, format: %s)"
% ctt.DATEFORMAT_PLAIN,
nargs=1, dest="start")
parser['report'].add_argument("--ed", "--end", help="end date (default: last of this month, format: %s)" % ctt.DATEFORMAT_PLAIN,
parser['report'].add_argument(
"--ed", "--end",
help="end date (default: last of this month, format: %s)"
% ctt.DATEFORMAT_PLAIN,
nargs=1, default=None, dest="end")
parser['report'].add_argument("-a", "--all", help="List entries for all projects", action='store_true')
parser['report'].add_argument("-e", "--regexp", help="regular expression to match",
default=None)
parser['report'].add_argument("-i", "--ignore-case", help="ignore case distinctions", action="store_true")
parser['report'].add_argument("-f", "--format", help="output format (default: %s)" % ctt.REPORTFORMAT,
parser['report'].add_argument(
"-a", "--all", help="List entries for all projects",
action='store_true')
parser['report'].add_argument(
"-e", "--regexp", help="regular expression to match", default=None)
parser['report'].add_argument(
"-i", "--ignore-case", help="ignore case distinctions",
action="store_true")
parser['report'].add_argument(
"-f", "--format",
help="output format (default: %s)" % ctt.REPORTFORMAT,
default=ctt.REPORTFORMAT, dest="output_format")
parser['report'].add_argument("-s", "--summary", help="hide project names and list time entries in chronological order", action="store_true")
parser['report'].add_argument(
"-s", "--summary",
help="hide project names and list time entries in chronological order",
action="store_true")
#parser['track'].add_argument("-t", "--tag", help="Add tags",
# parser['track'].add_argument("-t", "--tag", help="Add tags",
# action="store_true")
args = parser['main'].parse_args()
@ -114,6 +138,5 @@ if __name__ == "__main__":
from ctt.report import Report
from ctt.listprojects import ListProjects
parse_argv(sys.argv[1:], ctt.VERSION)
sys.exit(0)