119625d8cSopenharmony_ci#!/usr/bin/env python3
219625d8cSopenharmony_ci
319625d8cSopenharmony_ciimport argparse
419625d8cSopenharmony_ciimport re
519625d8cSopenharmony_ciimport pathlib
619625d8cSopenharmony_ciimport sys
719625d8cSopenharmony_ci
819625d8cSopenharmony_ci
919625d8cSopenharmony_ci_STDIO = pathlib.Path("-")
1019625d8cSopenharmony_ci
1119625d8cSopenharmony_ci
1219625d8cSopenharmony_cidef main():
1319625d8cSopenharmony_ci    parser = argparse.ArgumentParser()
1419625d8cSopenharmony_ci    parser.add_argument("-i", "--input", type=pathlib.Path, default="CHANGELOG.md")
1519625d8cSopenharmony_ci    parser.add_argument("--tag", required=True)
1619625d8cSopenharmony_ci    parser.add_argument("-o", "--output", type=pathlib.Path, required=True)
1719625d8cSopenharmony_ci    args = parser.parse_args()
1819625d8cSopenharmony_ci
1919625d8cSopenharmony_ci    if args.input == _STDIO:
2019625d8cSopenharmony_ci        lines = sys.stdin.readlines()
2119625d8cSopenharmony_ci    else:
2219625d8cSopenharmony_ci        with args.input.open() as fh:
2319625d8cSopenharmony_ci            lines = fh.readlines()
2419625d8cSopenharmony_ci    version = args.tag.lstrip("v")
2519625d8cSopenharmony_ci
2619625d8cSopenharmony_ci    note_lines = []
2719625d8cSopenharmony_ci    for line in lines:
2819625d8cSopenharmony_ci        if line.startswith("## ") and version in line:
2919625d8cSopenharmony_ci            note_lines.append(line)
3019625d8cSopenharmony_ci        elif note_lines and line.startswith("## "):
3119625d8cSopenharmony_ci            break
3219625d8cSopenharmony_ci        elif note_lines:
3319625d8cSopenharmony_ci            note_lines.append(line)
3419625d8cSopenharmony_ci
3519625d8cSopenharmony_ci    notes = "".join(note_lines).strip()
3619625d8cSopenharmony_ci    if args.output == _STDIO:
3719625d8cSopenharmony_ci        print(notes)
3819625d8cSopenharmony_ci    else:
3919625d8cSopenharmony_ci        args.output.write_text(notes)
4019625d8cSopenharmony_ci
4119625d8cSopenharmony_ci
4219625d8cSopenharmony_ciif __name__ == "__main__":
4319625d8cSopenharmony_ci    main()
44