diff --git a/app/src/main/java/com/termux/app/terminal/TermuxSession.java b/app/src/main/java/com/termux/app/terminal/TermuxSession.java index 6b1ed748..eab5e228 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxSession.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxSession.java @@ -33,7 +33,7 @@ public class TermuxSession { public static TermuxSession create(@NonNull final TermuxService service, @NonNull ExecutionCommand executionCommand, @NonNull TermuxSessionClientBase termuxSessionClient, String sessionName) { if (executionCommand.workingDirectory == null || executionCommand.workingDirectory.isEmpty()) executionCommand.workingDirectory = TermuxConstants.TERMUX_HOME_DIR_PATH; - String[] environment = ShellUtils.buildEnvironment(executionCommand.isFailsafe, executionCommand.workingDirectory); + String[] environment = ShellUtils.buildEnvironment(service, executionCommand.isFailsafe, executionCommand.workingDirectory); boolean isLoginShell = false; if (executionCommand.executable == null) { diff --git a/app/src/main/java/com/termux/app/terminal/TermuxTask.java b/app/src/main/java/com/termux/app/terminal/TermuxTask.java index d02a4e1a..4bd1f002 100644 --- a/app/src/main/java/com/termux/app/terminal/TermuxTask.java +++ b/app/src/main/java/com/termux/app/terminal/TermuxTask.java @@ -34,7 +34,7 @@ public final class TermuxTask { public static TermuxTask create(@NonNull final TermuxService service, @NonNull ExecutionCommand executionCommand) { if (executionCommand.workingDirectory == null || executionCommand.workingDirectory.isEmpty()) executionCommand.workingDirectory = TermuxConstants.TERMUX_HOME_DIR_PATH; - String[] env = ShellUtils.buildEnvironment(false, executionCommand.workingDirectory); + String[] env = ShellUtils.buildEnvironment(service, false, executionCommand.workingDirectory); final String[] commandArray = ShellUtils.setupProcessArgs(executionCommand.executable, executionCommand.arguments); // final String commandDescription = Arrays.toString(commandArray); diff --git a/app/src/main/java/com/termux/app/utils/ShellUtils.java b/app/src/main/java/com/termux/app/utils/ShellUtils.java index 341a01c7..e8be304a 100644 --- a/app/src/main/java/com/termux/app/utils/ShellUtils.java +++ b/app/src/main/java/com/termux/app/utils/ShellUtils.java @@ -1,6 +1,7 @@ package com.termux.app.utils; -import com.termux.BuildConfig; +import android.content.Context; + import com.termux.app.TermuxConstants; import java.io.File; @@ -13,14 +14,21 @@ import java.util.List; public class ShellUtils { - public static String[] buildEnvironment(boolean isFailSafe, String workingDirectory) { + public static String[] buildEnvironment(Context currentPackageContext, boolean isFailSafe, String workingDirectory) { TermuxConstants.TERMUX_HOME_DIR.mkdirs(); if (workingDirectory == null || workingDirectory.isEmpty()) workingDirectory = TermuxConstants.TERMUX_HOME_DIR_PATH; List environment = new ArrayList<>(); - environment.add("TERMUX_VERSION=" + BuildConfig.VERSION_NAME); + // This function may be called by a different package like a plugin, so we get version for Termux package via its context + Context termuxPackageContext = TermuxUtils.getTermuxPackageContext(currentPackageContext); + if(termuxPackageContext != null) { + String termuxVersionName = PackageUtils.getVersionNameForPackage(termuxPackageContext); + if(termuxVersionName != null) + environment.add("TERMUX_VERSION=" + termuxVersionName); + } + environment.add("TERM=xterm-256color"); environment.add("COLORTERM=truecolor"); environment.add("HOME=" + TermuxConstants.TERMUX_HOME_DIR_PATH);