From 359140781ea71ec24bec644734a54d984d6f9677 Mon Sep 17 00:00:00 2001 From: Moritz Date: Thu, 12 Oct 2023 10:57:52 +0200 Subject: [PATCH] fix(create): quote handling for bash pipefail wrapping of pre/post hooks --- backupbot.py | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/backupbot.py b/backupbot.py index b87da42..540b78b 100755 --- a/backupbot.py +++ b/backupbot.py @@ -127,9 +127,12 @@ def run_commands(commands): for container, command in commands.items(): if not command: continue + # Remove bash/sh wrapping + command = command.removeprefix('bash -c').removeprefix('sh -c') + # Remove quotes surrounding the command + if (len(command) >= 2 and command[0] == command[-1] and (command[0] == "'" or command[0] == '"')): + command[1:-1] # Use bash's pipefail to return exit codes inside a pipe to prevent silent failure - command = command.removeprefix('bash -c \'').removeprefix('sh -c \'') - command = command.removesuffix('\'') command = f"bash -c 'set -o pipefail;{command}'" logging.info(f"run command in {container.name}:") logging.info(command)