diff options
author | Mike Frysinger <vapier@google.com> | 2022-08-18 07:45:43 -0400 |
---|---|---|
committer | Mike Frysinger <vapier@google.com> | 2022-08-18 16:43:16 +0000 |
commit | 3c2d807905b5386d0308a5687442162e1075f4ae (patch) | |
tree | d98049d406884604a1565e0a68119b9ee7c6faf5 /pager.py | |
parent | 7fa8eedd8ff975a9cdc4a1c046a1cadb7b3d10c5 (diff) | |
download | git-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.py | 7 |
1 files changed, 5 insertions, 2 deletions
@@ -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 |