Fall back to use POSIX SHELL environment variable

This commit is contained in:
pagedown 2022-03-16 01:03:33 +08:00
parent 7160027c14
commit 91a17e3f0c
No known key found for this signature in database
GPG Key ID: E921CF18AC8FF6EB
2 changed files with 6 additions and 2 deletions

View File

@ -21,7 +21,7 @@ data_dir = shell_integration_dir = ''
request_data = int('REQUEST_DATA') request_data = int('REQUEST_DATA')
leading_data = b'' leading_data = b''
HOME = os.path.expanduser('~') HOME = os.path.expanduser('~')
login_shell = pwd.getpwuid(os.geteuid()).pw_shell or 'sh' login_shell = pwd.getpwuid(os.geteuid()).pw_shell or os.environ.get('SHELL') or 'sh'
def set_echo(fd, on=False): def set_echo(fd, on=False):

View File

@ -232,6 +232,10 @@ using_passwd() {
return 1 return 1
} }
using_shell_env() {
[ -n "$SHELL" ] && login_shell="$SHELL" && login_shell_is_ok
}
execute_with_python() { execute_with_python() {
if detect_python; then if detect_python; then
exec "$python" "-c" "import os; os.execlp('$login_shell', '-' '$shell_name')" exec "$python" "-c" "import os; os.execlp('$login_shell', '-' '$shell_name')"
@ -250,7 +254,7 @@ if [ -n "$KITTY_LOGIN_SHELL" ]; then
login_shell="$KITTY_LOGIN_SHELL" login_shell="$KITTY_LOGIN_SHELL"
unset KITTY_LOGIN_SHELL unset KITTY_LOGIN_SHELL
else else
using_getent || using_id || using_python || using_perl || using_passwd || die "Could not detect login shell" using_getent || using_id || using_python || using_perl || using_passwd || using_shell_env || login_shell="sh"
fi fi
shell_name=$(command basename $login_shell) shell_name=$(command basename $login_shell)
[ -n "$login_cwd" ] && cd "$login_cwd" [ -n "$login_cwd" ] && cd "$login_cwd"