diff --git a/newsfragments/1485.change.rst b/newsfragments/1485.change.rst new file mode 100644 index 00000000..067c14d5 --- /dev/null +++ b/newsfragments/1485.change.rst @@ -0,0 +1,3 @@ +Shell-quote the values which ``--env-var-format`` prints, so that output +for a name containing a space or another character which is special to +the shell can be used with ``eval`` or ``source``. diff --git a/src/vws_web_tools/__init__.py b/src/vws_web_tools/__init__.py index 6c9e88c7..89b1f252 100644 --- a/src/vws_web_tools/__init__.py +++ b/src/vws_web_tools/__init__.py @@ -4,6 +4,7 @@ import datetime import logging import re +import shlex import uuid from collections.abc import Sequence from dataclasses import dataclass @@ -1661,7 +1662,7 @@ def show_database_details( } for key, value in env_var_format_details.items(): - click.echo(message=f"{key}={value}") + click.echo(message=f"{key}={shlex.quote(s=value)}") else: click.echo(message=yaml.dump(data=details), nl=False) @@ -1701,7 +1702,7 @@ def show_vumark_database_details( } for key, value in env_var_format_details.items(): - click.echo(message=f"{key}={value}") + click.echo(message=f"{key}={shlex.quote(s=value)}") else: click.echo(message=yaml.dump(data=details), nl=False) @@ -1739,7 +1740,7 @@ def show_license_details( "VUFORIA_LICENSE_KEY": details["license_key"], } for key, value in env_var_format_details.items(): - click.echo(message=f"{key}={value}") + click.echo(message=f"{key}={shlex.quote(s=value)}") else: click.echo(message=yaml.dump(data=details), nl=False)