2019-02-03 18:26:13 +01:00
|
|
|
import argparse
|
2019-02-03 14:10:17 +01:00
|
|
|
from datetime import datetime, timedelta
|
|
|
|
|
|
|
|
from generator import generate_changelog
|
2019-02-02 22:12:08 +01:00
|
|
|
|
|
|
|
|
2019-02-03 18:26:13 +01:00
|
|
|
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)
|
|
|
|
|
|
|
|
|
2019-02-02 22:12:08 +01:00
|
|
|
def main():
|
2019-02-03 16:33:44 +01:00
|
|
|
since = datetime.today() - timedelta(5)
|
2019-02-03 14:10:17 +01:00
|
|
|
|
2019-02-03 18:26:13 +01:00
|
|
|
parser = argparse.ArgumentParser(description='Generate changelogs from closed GitHub issues and merged PRs.')
|
2019-02-03 19:07:33 +01:00
|
|
|
sincegroup = parser.add_mutually_exclusive_group()
|
|
|
|
|
|
|
|
sincegroup.add_argument('--since', metavar='"YYYY-MM-DD HH:MM:SS"', type=parsed_date,
|
|
|
|
help='date of previous release')
|
|
|
|
sincegroup.add_argument('--previous-version', type=str)
|
2019-02-03 18:26:13 +01:00
|
|
|
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()
|
2019-02-03 19:07:33 +01:00
|
|
|
generate_changelog(args.since, args.output,args.previous_version)
|