diff --git a/piptools/scripts/compile.py b/piptools/scripts/compile.py index a2fb6300..37bf042b 100755 --- a/piptools/scripts/compile.py +++ b/piptools/scripts/compile.py @@ -74,6 +74,7 @@ def _determine_linesep( ) @click.pass_context @options.version +@options.color @options.verbose @options.quiet @options.dry_run @@ -118,6 +119,7 @@ def _determine_linesep( @options.only_build_deps def cli( ctx: click.Context, + color: bool | None, verbose: int, quiet: int, dry_run: bool, @@ -165,6 +167,8 @@ def cli( Compiles requirements.txt from requirements.in, pyproject.toml, setup.cfg, or setup.py specs. """ + if color is not None: + ctx.color = color log.verbosity = verbose - quiet if all_build_deps and build_deps_targets: diff --git a/piptools/scripts/options.py b/piptools/scripts/options.py index d3e82533..ab456fce 100644 --- a/piptools/scripts/options.py +++ b/piptools/scripts/options.py @@ -33,6 +33,12 @@ def _get_default_option(option_name: str) -> Any: version = click.version_option(package_name="pip-tools") +color = click.option( + "--color/--no-color", + default=None, + help="Force output to be colorized or not, instead of auto-detecting color support", +) + verbose = click.option( "-v", "--verbose",