/* Logical Soft Informática Ltda.
 *
 *
 * LSOSCommand.java 1.0 14/09/2001
 * Este software é de propriedade de Logical Soft Informática Ltda.
 *
 */

package br.com.logicalsoft.util;

import java.io.*;

/** Executa comando de sistema operacional
 *
 * @author  Felipe F. Palma Dias
 * @version 1.0 19/09/2001
 */
public abstract class LSOSCommand
{
	
	/** Execute um comando. "Ex. ls *.txt"
	 * 
	 * @cmd Comando do sistema operacional.
	 */
	public static String execute(String cmd)
	{
		try
		{
			/** Cria ambiente de execução. */
			Runtime rt = Runtime.getRuntime();
			
			/** Cria um processo. */
			Process p = rt.exec(cmd);
			
			/** Gera a saida do processo. */
			InputStreamReader stream = new InputStreamReader(p.getInputStream());
			BufferedReader reader    = new BufferedReader(stream);
			/** --- */

			/** Variáveis au */				
			StringBuffer buffer = new StringBuffer();
			String line         = "";
			String newLine      = "\n";
			
			while ((line = reader.readLine()) != null)
			{
				buffer.append(line);
				buffer.append(newLine);
			}	
			
			/** Fecha saída. */
			reader.close();
			
			/** Fecha entrada padrão do processo. */
			p.getInputStream().close();
			
			/** Fecha saída padrão do processo. */
			p.getOutputStream().close();
			
			/** Fecha saída de erro do processo. */
			p.getErrorStream().close();
			
			/** Gera wait corrente para o processo. */
			p.waitFor();	
			
			return buffer.toString();
			
		}catch(Exception e)
		{
			return e.getMessage();
		}
	}	
}
