Rename read func

This commit is contained in:
Melissa LeBlanc-Williams 2022-11-10 12:44:43 -08:00
parent 0bc10b7dc0
commit 69d333ff9b
3 changed files with 26 additions and 3 deletions

View file

@ -69,7 +69,7 @@ class Shell:
""" """
Run a shell command and show the output as it runs Run a shell command and show the output as it runs
""" """
def non_block_read(output): def read_stream(output):
fd = output.fileno() fd = output.fileno()
fl = fcntl.fcntl(fd, fcntl.F_GETFL) fl = fcntl.fcntl(fd, fcntl.F_GETFL)
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK)
@ -87,10 +87,10 @@ class Shell:
universal_newlines=True universal_newlines=True
) as proc: ) as proc:
while proc.poll() is None: while proc.poll() is None:
err = non_block_read(proc.stderr) err = read_stream(proc.stderr)
if err != "" and not suppress_message: if err != "" and not suppress_message:
self.error(err.strip(), end="\n\r") self.error(err.strip(), end="\n\r")
output = non_block_read(proc.stdout) output = read_stream(proc.stdout)
if output != "" and not suppress_message: if output != "" and not suppress_message:
self.info(output.strip(), end="\n\r") self.info(output.strip(), end="\n\r")
full_output += output full_output += output

16
test.py Normal file
View file

@ -0,0 +1,16 @@
try:
from adafruit_shell import Shell
except ImportError:
raise RuntimeError("The library 'adafruit_shell' was not found. To install, try typing: sudo pip3 install adafruit-python-shell")
shell = Shell()
shell.group="Blinka"
def main():
#shell.clear()
print("Running test")
shell.run_command("./test.sh")
# Main function
if __name__ == "__main__":
main()

7
test.sh Executable file
View file

@ -0,0 +1,7 @@
#! /bin/bash
>&2 echo This should go to stderr
echo Interactive Test
>&2 echo This should also go to stderr
read -p "Hello, who am I speaking to? " NAME
echo It\'s Nice to meet you $NAME