/
germanubis
/
clap
Обзор
Документация
Войти
/
germanubis
/
clap
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
.github/workflows/release-notes.py
43 строки
1 KB
Ed Page
chore(gh): Automate release creation
01 янв 2022, 21:43
01 янв 2022, 21:43
a01b0c8
Код
Авторство
О чём код?
#!/usr/bin/env python3 import argparse import re import pathlib import sys _STDIO = pathlib.Path("-") def main(): parser = argparse.ArgumentParser() parser.add_argument("-i", "--input", type=pathlib.Path, default="CHANGELOG.md") parser.add_argument("--tag", required=True) parser.add_argument("-o", "--output", type=pathlib.Path, required=True) args = parser.parse_args() if args.input == _STDIO: lines = sys.stdin.readlines() else: with args.input.open() as fh: lines = fh.readlines() version = args.tag.lstrip("v") note_lines = [] for line in lines: if line.startswith("## ") and version in line: note_lines.append(line) elif note_lines and line.startswith("## "): break elif note_lines: note_lines.append(line) notes = "".join(note_lines).strip() if args.output == _STDIO: print(notes) else: args.output.write_text(notes) if __name__ == "__main__": main()