Class TerminalActions

java.lang.Object
com.shaft.cli.TerminalActions

public class TerminalActions extends Object
Executes shell commands on local or remote terminals.

Supports local OS command execution via ProcessBuilder and remote command execution over SSH using JSch. Commands can be run synchronously or asynchronously with configurable timeouts.

Usage example:

SHAFT.CLI.terminal().performTerminalCommand("ls -la");
See Also:
  • Constructor Details

    • TerminalActions

      public TerminalActions()
      This constructor is used for local terminal actions.
    • TerminalActions

      public TerminalActions(boolean asynchronous)
      This constructor is used for local terminal actions.
      Parameters:
      asynchronous - true for asynchronous execution of commands in a separate thread
    • TerminalActions

      public TerminalActions(String dockerName, String dockerUsername)
      This constructor is used for local terminal actions inside a docker.
      Parameters:
      dockerName - the name of the docker instance that you want to execute the terminal command inside
      dockerUsername - the username which will be used to access the docker instance. Must have the access/privilege to execute the terminal command
    • TerminalActions

      public TerminalActions(String sshHostName, int sshPortNumber, String sshUsername, String sshKeyFileFolderName, String sshKeyFileName)
      This constructor is used for remote terminal actions.
      Parameters:
      sshHostName - the IP address or host name for the remote machine you want to execute the terminal command on.
      sshPortNumber - the port that's used for the SSH service on the target machine. Default is 22.
      sshUsername - the username which will be used to access the target machine via ssh. Must have the access/privilege to execute the terminal command
      sshKeyFileFolderName - the directory that holds the ssh key file (usually it's somewhere in the test data of the current project)
      sshKeyFileName - the name of the ssh key file
    • TerminalActions

      public TerminalActions(String sshHostName, int sshPortNumber, String sshUsername, String sshKeyFileFolderName, String sshKeyFileName, String dockerName, String dockerUsername)
      This constructor is used for remote terminal actions inside a docker.
      Parameters:
      sshHostName - the IP address or host name for the remote machine you want to execute the terminal command on.
      sshPortNumber - the port that's used for the SSH service on the target machine. Default is 22.
      sshUsername - the username which will be used to access the target machine via ssh. Must have the access/privilege to execute the terminal command
      sshKeyFileFolderName - the directory that holds the ssh key file (usually it's somewhere in the test data of the current project)
      sshKeyFileName - the name of the ssh key file
      dockerName - the name of the docker instance that you want to execute the terminal command inside
      dockerUsername - the username which will be used to access the docker instance. Must have the access/privilege to execute the terminal command
  • Method Details

    • getInstance

      public static TerminalActions getInstance()
    • getInstance

      public static TerminalActions getInstance(boolean asynchronous)
    • getInstance

      public static TerminalActions getInstance(boolean asynchronous, boolean verbose)
    • getInstance

      public static TerminalActions getInstance(boolean asynchronous, boolean verbose, boolean isInternal)
    • isRemoteTerminal

      public boolean isRemoteTerminal()
    • isDockerizedTerminal

      public boolean isDockerizedTerminal()
    • performTerminalCommands

      public String performTerminalCommands(List<String> commands)
    • performTerminalCommand

      public String performTerminalCommand(String command)