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