From 9749360caacc8b4e3486343a44b7e0a8d87edf06 Mon Sep 17 00:00:00 2001 From: agnostic-apollo Date: Sat, 11 Jun 2022 19:29:24 +0500 Subject: [PATCH] Added: Add `UnixShellEnvironment.LOGIN_SHELL_BINARIES` variable for common/supported login shell binaries searched and add `fish` and `sh` shell as additional backups --- .../shared/shell/command/environment/UnixShellEnvironment.java | 3 +++ .../termux/shell/command/runner/terminal/TermuxSession.java | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/termux-shared/src/main/java/com/termux/shared/shell/command/environment/UnixShellEnvironment.java b/termux-shared/src/main/java/com/termux/shared/shell/command/environment/UnixShellEnvironment.java index 376879fa..7f29a640 100644 --- a/termux-shared/src/main/java/com/termux/shared/shell/command/environment/UnixShellEnvironment.java +++ b/termux-shared/src/main/java/com/termux/shared/shell/command/environment/UnixShellEnvironment.java @@ -52,6 +52,9 @@ public abstract class UnixShellEnvironment implements IShellEnvironment { public static final String ENV_TMPDIR = "TMPDIR"; + /** Names for common/supported login shell binaries. */ + public static final String[] LOGIN_SHELL_BINARIES = new String[]{"login", "bash", "zsh", "fish", "sh"}; + @NonNull diff --git a/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java b/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java index c95de6ef..7aa874d1 100644 --- a/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java +++ b/termux-shared/src/main/java/com/termux/shared/termux/shell/command/runner/terminal/TermuxSession.java @@ -93,7 +93,7 @@ public class TermuxSession { boolean isLoginShell = false; if (executionCommand.executable == null) { if (!executionCommand.isFailsafe) { - for (String shellBinary : new String[]{"login", "bash", "zsh"}) { + for (String shellBinary : UnixShellEnvironment.LOGIN_SHELL_BINARIES) { File shellFile = new File(defaultBinPath, shellBinary); if (shellFile.canExecute()) { executionCommand.executable = shellFile.getAbsolutePath();