summaryrefslogtreecommitdiffstats
path: root/pager.py
diff options
context:
space:
mode:
authorMike Frysinger <vapier@google.com>2022-08-18 07:45:43 -0400
committerMike Frysinger <vapier@google.com>2022-08-18 16:43:16 +0000
commit3c2d807905b5386d0308a5687442162e1075f4ae (patch)
treed98049d406884604a1565e0a68119b9ee7c6faf5 /pager.py
parent7fa8eedd8ff975a9cdc4a1c046a1cadb7b3d10c5 (diff)
downloadgit-repo-3c2d807905b5386d0308a5687442162e1075f4ae.tar.gz
pager: catch startup failures on Windows
If the user's pager settings are broken, display an error message rather than crash to avoid confusing them. Bug: https://crbug.com/gerrit/16173 Change-Id: Idc0891da783c68f3a96ac53a82781e34e40421fb Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/343437 Reviewed-by: LaMont Jones <lamontjones@google.com> Tested-by: Mike Frysinger <vapier@google.com>
Diffstat (limited to 'pager.py')
-rw-r--r--pager.py7
1 files changed, 5 insertions, 2 deletions
diff --git a/pager.py b/pager.py
index 352923d9..438597ef 100644
--- a/pager.py
+++ b/pager.py
@@ -56,8 +56,11 @@ def _PipePager(pager):
56 global pager_process, old_stdout, old_stderr 56 global pager_process, old_stdout, old_stderr
57 assert pager_process is None, "Only one active pager process at a time" 57 assert pager_process is None, "Only one active pager process at a time"
58 # Create pager process, piping stdout/err into its stdin 58 # Create pager process, piping stdout/err into its stdin
59 pager_process = subprocess.Popen([pager], stdin=subprocess.PIPE, stdout=sys.stdout, 59 try:
60 stderr=sys.stderr) 60 pager_process = subprocess.Popen([pager], stdin=subprocess.PIPE, stdout=sys.stdout,
61 stderr=sys.stderr)
62 except FileNotFoundError:
63 sys.exit(f'fatal: cannot start pager "{pager}"')
61 old_stdout = sys.stdout 64 old_stdout = sys.stdout
62 old_stderr = sys.stderr 65 old_stderr = sys.stderr
63 sys.stdout = pager_process.stdin 66 sys.stdout = pager_process.stdin