feat: add --set-env flag to set environment variables from command line

This commit is contained in:
Paul Gauthier (aider) 2024-12-07 08:05:57 -08:00
parent 66b99c4fa0
commit e41bf67f73
2 changed files with 18 additions and 0 deletions

View file

@ -772,6 +772,13 @@ def get_parser(default_config_files, git_root):
"--editor",
help="Specify which editor to use for the /editor command",
)
group.add_argument(
"--set-env",
action="append",
metavar="ENV_VAR_NAME=value",
help="Set an environment variable (can be used multiple times)",
default=[],
)
##########
group = parser.add_argument_group("Voice Settings")

View file

@ -454,6 +454,17 @@ def main(argv=None, input=None, output=None, force_git_root=None, return_coder=F
# Load the .env file specified in the arguments
loaded_dotenvs = load_dotenv_files(git_root, args.env_file, args.encoding)
# Process any environment variables set via --set-env
if args.set_env:
for env_setting in args.set_env:
try:
name, value = env_setting.split('=', 1)
os.environ[name.strip()] = value.strip()
except ValueError:
io.tool_error(f"Invalid --set-env format: {env_setting}")
io.tool_output("Format should be: ENV_VAR_NAME=value")
return 1
# Parse again to include any arguments that might have been defined in .env
args = parser.parse_args(argv)