mirror of
https://github.com/ARM-software/devlib.git
synced 2025-01-30 17:50:46 +00:00
devlib: Remove sudo prompt
Since the prompt is added to stdout, remove the one-space-prompt that currently corrupts stdout when a command is ran with sudo. That non-empty prompt was added as Windows Subsystem for Linux version 1 (WSL1) has a broken sudo implementation that chokes on an empty prompt. Considering this is not a platform that is normally suported by devlib, we re-introduce that empty prompt.
This commit is contained in:
parent
6a6d9f30dd
commit
dabee29350
@ -112,7 +112,9 @@ class LocalConnection(ConnectionBase):
|
||||
if self.unrooted:
|
||||
raise TargetStableError('unrooted')
|
||||
password = self._get_password()
|
||||
command = "echo {} | sudo -k -p ' ' -S -- sh -c {}".format(quote(password), quote(command))
|
||||
# Empty prompt with -p '' to avoid adding a leading space to the
|
||||
# output.
|
||||
command = "echo {} | sudo -k -p '' -S -- sh -c {}".format(quote(password), quote(command))
|
||||
ignore = None if check_exit_code else 'all'
|
||||
try:
|
||||
stdout, stderr = check_output(command, shell=True, timeout=timeout, ignore=ignore)
|
||||
@ -136,9 +138,9 @@ class LocalConnection(ConnectionBase):
|
||||
if self.unrooted:
|
||||
raise TargetStableError('unrooted')
|
||||
password = self._get_password()
|
||||
# The sudo prompt will add a space on stderr, but we cannot filter
|
||||
# it out here
|
||||
command = "echo {} | sudo -k -p ' ' -S -- sh -c {}".format(quote(password), quote(command))
|
||||
# Empty prompt with -p '' to avoid adding a leading space to the
|
||||
# output.
|
||||
command = "echo {} | sudo -k -p '' -S -- sh -c {}".format(quote(password), quote(command))
|
||||
|
||||
# Make sure to get a new PGID so PopenBackgroundCommand() can kill
|
||||
# all sub processes that could be started without troubles.
|
||||
|
@ -61,7 +61,8 @@ from devlib.utils.types import boolean
|
||||
from devlib.connection import ConnectionBase, ParamikoBackgroundCommand, SSHTransferHandle
|
||||
|
||||
|
||||
DEFAULT_SSH_SUDO_COMMAND = "sudo -k -p ' ' -S -- sh -c {}"
|
||||
# Empty prompt with -p '' to avoid adding a leading space to the output.
|
||||
DEFAULT_SSH_SUDO_COMMAND = "sudo -k -p '' -S -- sh -c {}"
|
||||
|
||||
|
||||
class _SSHEnv:
|
||||
|
Loading…
x
Reference in New Issue
Block a user