예제 #1
0
def log_repo( path, start, end ):
	
	if start:
		revision = '%s:%s' % ( start, end )
	else:
		revision = end
	
	verbose( 'Log %s revision %s' % ( path, revision ), False )
	
	logs = pr_svn.log( path, revision, True, True )
	wait()
	
	return logs
예제 #2
0
def main(argv=None):
    global options

    if argv is None:
        argv = sys.argv
    try:
        try:
            opts, args = getopt.getopt(
                argv[1:],
                "hr:tywg:o:n:d:mxfpvq",
                [
                    "help",
                    "revision=",
                    "today",
                    "yesterday",
                    "week",
                    "group=",
                    "output=",
                    "name=",
                    "default=",
                    "multi",
                    "xxx",
                    "fun",
                    "paths",
                    "verbose",
                    "quiet",
                ],
            )
        except getopt.error, msg:
            raise Usage(msg)

        options["revision"] = '{"' + lastweek.isoformat() + 'T00:00Z"}:HEAD'

        for option, value in opts:

            if option in ("-h", "--help"):
                raise Usage(help_message)

            if option in ("-r", "--revision"):
                options["revision"] = value
            if option in ("-t", "--today"):
                options["revision"] = '{"' + today.isoformat() + 'T00:00Z"}:{"' + today.isoformat() + 'T23:59Z"}'
            if option in ("-y", "--yesterday"):
                options["revision"] = (
                    '{"' + yesterday.isoformat() + 'T00:00Z"}:{"' + yesterday.isoformat() + 'T23:59Z"}'
                )
            if option in ("-w", "--week"):
                options["revision"] = '{"' + lastweek.isoformat() + 'T00:00Z"}:{"' + yesterday.isoformat() + 'T23:59Z"}'

            if option in ("-g", "--group") and value in ["date", "category", "author", "none"]:
                options["group"] = value

            if option in ("-o", "--output"):
                options["output"] = value

            if option in ("-n", "--name"):
                options["name"] = " - %s" % value
            if option in ("-d", "--default"):
                options["default"] = value

            if option in ("-m", "--multi"):
                options["multi"] = True
            if option in ("-x", "--xxx"):
                options["hide"] = True
            if option in ("-f", "--fun"):
                options["hide"] = False
            if option in ("-p", "--paths"):
                options["paths"] = True

            if option in ("-v", "--verbose"):
                options["verbose"] = "-v"
            if option in ("-q", "--quiet"):
                options["quiet"] = "-q"

        try:
            options["path"] = args[0]
        except:
            raise Usage("Missing PATH or URL argument.")

        if options["output"] not in ["text", "bbcode", "rss", "test"]:
            raise Usage("Incorrect output format (text, bbcode, rss, test)")

        logs = pr_svn.log(options["path"], options["revision"], options["paths"], options["multi"], options["default"])

        if options["hide"] in [True, False]:
            logs = hide(logs, options["hide"])

        header(options["path"], options["revision"], options["output"])

        if options["group"] == "none":
            by_none(logs, options["output"])
        elif options["group"] == "category":
            by_category(logs, options["output"])
        elif options["group"] == "author":
            by_author(logs, options["output"])
        else:
            by_date(logs, options["output"])

        footer(options["path"], options["revision"], options["output"])