diff --git a/src/towncrier/_git.py b/src/towncrier/_git.py index 4db06ce4..a0f9aee7 100644 --- a/src/towncrier/_git.py +++ b/src/towncrier/_git.py @@ -7,31 +7,9 @@ from subprocess import STDOUT, call, check_output -import click - - -def remove_files( - fragment_filenames: list[str], answer_yes: bool, answer_keep: bool -) -> None: - if not fragment_filenames: - return - - try: - if answer_keep: - click.echo("Keeping the following files:") - # Not proceeding with the removal of the files. - return - - if answer_yes: - click.echo("Removing the following files:") - else: - click.echo("I want to remove the following files:") - finally: - # Will always be printed, even for answer_keep to help with possible troubleshooting - for filename in fragment_filenames: - click.echo(filename) - - if answer_yes or click.confirm("Is it okay if I remove those files?", default=True): + +def remove_files(fragment_filenames: list[str]) -> None: + if fragment_filenames: call(["git", "rm", "--quiet"] + fragment_filenames) diff --git a/src/towncrier/_remover.py b/src/towncrier/_remover.py new file mode 100644 index 00000000..982fbcf1 --- /dev/null +++ b/src/towncrier/_remover.py @@ -0,0 +1,30 @@ +# Copyright (c) Amber Brown, 2015 +# See LICENSE for details. + +from __future__ import annotations + +import click + +from towncrier._git import remove_files + + +def remove_news_fragment_files( + fragment_filenames: list[str], answer_yes: bool, answer_keep: bool +) -> None: + try: + if answer_keep: + click.echo("Keeping the following files:") + # Not proceeding with the removal of the files. + return + + if answer_yes: + click.echo("Removing the following files:") + else: + click.echo("I want to remove the following files:") + finally: + # Will always be printed, even for answer_keep to help with possible troubleshooting + for filename in fragment_filenames: + click.echo(filename) + + if answer_yes or click.confirm("Is it okay if I remove those files?", default=True): + remove_files(fragment_filenames) diff --git a/src/towncrier/build.py b/src/towncrier/build.py index 0f6ec77a..866ef2d3 100644 --- a/src/towncrier/build.py +++ b/src/towncrier/build.py @@ -17,8 +17,10 @@ from click import Context, Option +from towncrier._remover import remove_news_fragment_files + from ._builder import find_fragments, render_fragments, split_fragments -from ._git import remove_files, stage_newsfile +from ._git import stage_newsfile from ._project import get_project_name, get_version from ._settings import ConfigError, config_option_help, load_config_from_options from ._writer import append_to_newsfile @@ -263,7 +265,7 @@ def __main( stage_newsfile(base_directory, news_file) click.echo("Removing news fragments...", err=to_err) - remove_files(fragment_filenames, answer_yes, answer_keep) + remove_news_fragment_files(fragment_filenames, answer_yes, answer_keep) click.echo("Done!", err=to_err)