Improve remote-cli to allow use special characters
This change escapes all arguments of commands that will be executed inside the Docker image used by remote-cli. Currently, the remote-cli is not able to execute commands that contain special characters. TEST PLAN: - PASS: Use kubectl command with special characters (using -o jsonpath) Closes-Bug: 2112129 Change-Id: I511791c46a51fcc05f2b020f79b0f39440864a28 Signed-off-by: Gustavo Ornaghi Antunes <gustavo.ornaghiantunes@windriver.com>
This commit is contained in:
@@ -87,12 +87,18 @@ else
|
||||
SHELL_COMMAND="docker"
|
||||
fi
|
||||
|
||||
cmd=""
|
||||
for arg in "$@"; do
|
||||
printf -v esc '%q ' "$arg"
|
||||
cmd+="$esc"
|
||||
done
|
||||
|
||||
if [[ "$FORCE_SHELL" == "true" ]]; then
|
||||
exec ${SHELL_COMMAND} run --rm --network host -ti ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "$*"
|
||||
exec ${SHELL_COMMAND} run --rm --network host -ti ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "${cmd}"
|
||||
elif [[ "$FORCE_NO_SHELL" == "true" ]]; then
|
||||
exec ${SHELL_COMMAND} run --rm --network host -t ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "$*"
|
||||
exec ${SHELL_COMMAND} run --rm --network host -t ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "${cmd}"
|
||||
elif [ -z "$2" ]; then
|
||||
exec ${SHELL_COMMAND} run --rm --network host -ti ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "$*"
|
||||
exec ${SHELL_COMMAND} run --rm --network host -ti ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "${cmd}"
|
||||
else
|
||||
exec ${SHELL_COMMAND} run --rm --network host -t ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "$*"
|
||||
exec ${SHELL_COMMAND} run --rm --network host -t ${COMMAND_ENV} ${VOLUME_LIST} --entrypoint /bin/bash --workdir /wd ${CLIENT_IMAGE_NAME} -c "${cmd}"
|
||||
fi
|
||||
|
Reference in New Issue
Block a user