|
2 | 2 |
|
3 | 3 | """Snippets generator""" |
4 | 4 |
|
| 5 | +import json |
5 | 6 | import logging |
6 | 7 | from pathlib import Path |
7 | 8 | from typing import Dict, Iterator |
@@ -89,11 +90,13 @@ def __init__(self, changelog: Path, snippets_folder: Path, update_in_place: boo |
89 | 90 |
|
90 | 91 | self._skip_internal = skip_internal |
91 | 92 |
|
92 | | - def update_changelog(self) -> None: |
| 93 | + def update_changelog(self, dry_run: bool = False) -> None: |
93 | 94 | new_changelog_content = "" |
94 | 95 | # create a "prolog" and an "epilog", with the new content in between |
95 | 96 | existing_changelog_content = read_file(path=self._changelog, parse="read").split(self._version_line) |
96 | 97 |
|
| 98 | + latest_changelog_entry = {} |
| 99 | + |
97 | 100 | for commit, file_name in self.snippets(): |
98 | 101 | self._logger.debug(f"Parsing {file_name}") |
99 | 102 | self.parse(file_name=file_name) |
@@ -123,12 +126,18 @@ def update_changelog(self) -> None: |
123 | 126 | "content": snippet_content["details"], |
124 | 127 | "version_reference": f"https://github.com/brainelectronics/snippets2changelog/tree/{self.semver_data}", |
125 | 128 | } |
| 129 | + latest_changelog_entry = changelog_entry_content |
126 | 130 | self._logger.debug(f"changelog_entry_content: {changelog_entry_content}") |
127 | 131 |
|
128 | 132 | changelog_entry = self._env.get_template("changelog_part.md.template").render(changelog_entry_content) |
129 | 133 | self._logger.debug(f"rendered changelog_entry: \n{changelog_entry}") |
130 | 134 | new_changelog_content = changelog_entry + new_changelog_content |
131 | 135 |
|
| 136 | + if dry_run: |
| 137 | + latest_changelog_entry['version'] = str(latest_changelog_entry['version']) |
| 138 | + print(json.dumps(latest_changelog_entry)) |
| 139 | + return |
| 140 | + |
132 | 141 | rendered_changelog = self._env.get_template("changelog.md.template").render({"prolog": existing_changelog_content[0], "new": new_changelog_content, "existing": self._version_line + existing_changelog_content[1]}) |
133 | 142 | rendered_changelog_path = Path(f"{self._changelog}") |
134 | 143 | if not self._update_in_place: |
|
0 commit comments