diff --git a/generator/cli.py b/generator/cli.py index 60888df..f4e8ea3 100644 --- a/generator/cli.py +++ b/generator/cli.py @@ -1,9 +1,28 @@ +import argparse from datetime import datetime, timedelta from generator import generate_changelog +def parsed_date(s): + try: + return datetime.strptime(s, "%Y-%m-%d %H:%M:%S") + except ValueError: + msg = "Not a valid date: '{0}'.".format(s) + raise argparse.ArgumentTypeError(msg) + + def main(): since = datetime.today() - timedelta(5) - generate_changelog(since) + parser = argparse.ArgumentParser(description='Generate changelogs from closed GitHub issues and merged PRs.') + parser.add_argument('--since', metavar='"YYYY-MM-DD HH:MM:SS"', type=parsed_date, + help='date of previous release') + parser.add_argument('--output', metavar='"YYYY-MM-DD HH:MM:SS"', type=parsed_date, + help='date of previous release') + group = parser.add_mutually_exclusive_group(required=True) + group.add_argument('--html', action='store_const', const="html", dest="output", help="output as HTML") + group.add_argument('--markdown', action='store_const', const="markdown", dest="output", help="output as markdown") + + args = parser.parse_args() + generate_changelog(args.since, args.output) diff --git a/generator/formatters/html.py b/generator/formatters/html.py index 6b1e000..5255c26 100644 --- a/generator/formatters/html.py +++ b/generator/formatters/html.py @@ -9,7 +9,8 @@ class HTMLFormatter(BaseFormatter): text = "
\n" for repo in self.repos: if repo.issues: - text += "

{}

\n".format(repo.absolute_url, repo.path) + if len(self.repos) > 1: + text += "

{}

\n".format(repo.absolute_url, repo.path) text += "