handle platforms that don't support termios (#1652)

This commit is contained in:
Jay Lee
2023-07-31 17:18:45 -04:00
committed by GitHub
parent 5bc294f62e
commit 1707eff9a6

View File

@@ -78,7 +78,11 @@ import struct
import subprocess import subprocess
import sys import sys
from tempfile import TemporaryFile from tempfile import TemporaryFile
import termios try:
import termios
except ImportError:
# termios does not exist for Windows
pass
import threading import threading
import time import time
from traceback import print_exc from traceback import print_exc
@@ -4479,7 +4483,8 @@ def runSqliteQuery(db_file, query):
return curr.fetchone()[0] return curr.fetchone()[0]
def refreshCredentialsWithReauth(credentials): def refreshCredentialsWithReauth(credentials):
old_settings = termios.tcgetattr(sys.stdin) if 'termios' in sys.modules:
old_settings = termios.tcgetattr(sys.stdin)
# First makes sure gcloud has a valid access token and thus # First makes sure gcloud has a valid access token and thus
# should also have a valid RAPT token # should also have a valid RAPT token
try: try:
@@ -4494,7 +4499,8 @@ def refreshCredentialsWithReauth(credentials):
capture_output=True) capture_output=True)
except KeyboardInterrupt: except KeyboardInterrupt:
# avoids loss of terminal echo on *nix # avoids loss of terminal echo on *nix
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings) if 'termios' in sys.modules:
termios.tcsetattr(sys.stdin, termios.TCSADRAIN, old_settings)
printBlankLine() printBlankLine()
raise KeyboardInterrupt raise KeyboardInterrupt
token_path = gcloud_path_result.stdout.decode().strip() token_path = gcloud_path_result.stdout.decode().strip()