Merge branch 'patch/getpwuid' of https://github.com/usertam/kitty

This commit is contained in:
Kovid Goyal 2023-03-19 17:18:29 +05:30
commit 9a8e92fade
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
2 changed files with 11 additions and 2 deletions

View File

@ -173,7 +173,11 @@ env COLORTERM
methods.append('using_passwd')
self.assertTrue(methods)
import pwd
try:
expected_login_shell = pwd.getpwuid(os.geteuid()).pw_shell
except KeyError:
with suppress(Exception):
self.skipTest('Skipping login shell detection as getpwuid() failed to read login shell')
if os.path.basename(expected_login_shell) == 'nologin':
self.skipTest('Skipping login shell detection as login shell is set to nologin')
for m in methods:

View File

@ -20,7 +20,12 @@ echo_on = int('ECHO_ON')
data_dir = shell_integration_dir = ''
request_data = int('REQUEST_DATA')
leading_data = b''
login_shell = pwd.getpwuid(os.geteuid()).pw_shell or os.environ.get('SHELL') or 'sh'
try:
login_shell = pwd.getpwuid(os.geteuid()).pw_shell or os.environ.get('SHELL') or '/bin/sh'
except KeyError:
login_shell = os.environ.get('SHELL') or '/bin/sh'
with suppress(Exception):
print('Failed to read login shell via getpwuid() for current user, falling back to', login_shell, file=sys.stderr)
export_home_cmd = b'EXPORT_HOME_CMD'
if export_home_cmd:
HOME = base64.standard_b64decode(export_home_cmd).decode('utf-8')