package tap.db_testtools;
import java.io.BufferedReader;
import java.io.InputStreamReader;
/**
* Let's execute any shell command (even with pipes and redirections).
*
* @author Grégory Mantelet (ARI)
* @version 2.0 (09/2014)
*/
public final class CommandExecute {
/**
* SINGLETON CLASS.
* No instance of this class can be created.
*/
private CommandExecute(){}
/**
* Execute the given command (which may include pipe(s) and/or redirection(s)).
*
* @param command Command to execute in the shell.
*
* @return The string returned by the execution of the command.
*/
public final static String execute(final String command){
String[] shellCmd = new String[]{"/bin/sh","-c",command};
StringBuffer output = new StringBuffer();
Process p;
try{
p = Runtime.getRuntime().exec(shellCmd);
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while((line = reader.readLine()) != null){
output.append(line + "\n");
}
}catch(Exception e){
e.printStackTrace();
}
return output.toString();
}
}