mirror of
https://github.com/fankes/termux-app.git
synced 2025-09-06 18:55:31 +08:00
Those classes shouldn't be tied to termux environment like variables, interpreters and working directory since commands may need to be executed with a different environment like android's or with a different logic. Now both classes use the ShellEnvironmentClient interface to dynamically get the environment to be used which currently for Termux's case is implemented by TermuxShellEnvironmentClient which is just a wrapper for TermuxShellUtils since later implements static functions.
48 lines
1.4 KiB
Java
48 lines
1.4 KiB
Java
package com.termux.shared.shell;
|
|
|
|
import android.content.Context;
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
public interface ShellEnvironmentClient {
|
|
|
|
/**
|
|
* Get the default working directory path for the environment in case the path that was passed
|
|
* was {@code null} or empty.
|
|
*
|
|
* @return Should return the default working directory path.
|
|
*/
|
|
@NonNull
|
|
String getDefaultWorkingDirectoryPath();
|
|
|
|
/**
|
|
* Get the default "/bin" path, likely $PREFIX/bin.
|
|
*
|
|
* @return Should return the "/bin" path.
|
|
*/
|
|
@NonNull
|
|
String getDefaultBinPath();
|
|
|
|
/**
|
|
* Build the shell environment to be used for commands.
|
|
*
|
|
* @param currentPackageContext The {@link Context} for the current package.
|
|
* @param isFailSafe If running a failsafe session.
|
|
* @param workingDirectory The working directory for the environment.
|
|
* @return Should return the build environment.
|
|
*/
|
|
@NonNull
|
|
String[] buildEnvironment(Context currentPackageContext, boolean isFailSafe, String workingDirectory);
|
|
|
|
/**
|
|
* Setup process arguments for the file to execute, like interpreter, etc.
|
|
*
|
|
* @param fileToExecute The file to execute.
|
|
* @param arguments The arguments to pass to the executable.
|
|
* @return Should return the final process arguments.
|
|
*/
|
|
@NonNull
|
|
String[] setupProcessArgs(@NonNull String fileToExecute, String[] arguments);
|
|
|
|
}
|