fix: Handle empty and commented shell commands in EditBlockCoder

This commit is contained in:
Paul Gauthier 2024-08-21 13:23:01 -07:00 committed by Paul Gauthier (aider)
parent a9fe599591
commit eb43a1fb43

View file

@ -42,20 +42,30 @@ class EditBlockCoder(Coder):
failed = []
passed = []
dump(edits)
for edit in edits:
dump(edit)
if edit[0] is None:
edit = edit[1]
# This is a shell command
commands = edit.strip().split("\n")
commands = edit.strip().splitlines()
if self.io.confirm_ask("Run shell command(s)?", subject="\n".join(commands)):
self.io.tool_output()
for command in commands:
command = command.strip()
if not command:
continue
if command.startswith('#'):
continue
self.io.tool_output()
self.io.tool_output(f"Running {command}")
try:
# Add the command to input history
self.io.add_to_input_history(f"/run {command.strip()}")
self.run_interactive_subprocess(command.split())
except Exception as e:
self.io.tool_error(f"Error running command '{command}': {str(e)}")
continue
else:
path, original, updated = edit
full_path = self.abs_root_path(path)