
/**
 * ATKIS-EDBS-Reader to read EDBS-File, convert and write it to an Oracle database
 * Copyright (C) 2000  Stephan Falke, Carsten Kleiner, University of Hannover
 * 
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 * 
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with this program; if not, write to the Free Software
 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */

package parser;

import java.lang.*;
import java.io.*;

/**
 * Diese Klasse stellt eine Shell zur Verf&uuml;gung.
 * @author <A href="mailto:fad@gmx.ch">Stephan Falke</A>
 */
class Shell {
	/**
	 * der Prozess, der gestartet wird
	 */
	private Process p;
	
	/**
	 * Es wird das &uuml;bergebene Kommando ausgef&uuml;hrt. Bei Auftreten eines 
	 * Fehlers, wird dessen Meldung ausgegeben.
	 * @param arg das Kommando
	 */
	protected Shell (String arg) {
		String command = new String();
		if (Constants.LOG) {
			command = Constants.START_FILE + "'{ " + arg + " } 2>&1|tee " + Constants.DEBUG_FILE_NAME + "; read a\n'"; 
//			command = Constants.START_FILE + "'{ " + arg + " }|" + Constants.DEBUG_FILE_NAME + "\n'"; 
		}
		else {
			command = Constants.START_FILE + "'" + arg + "read a\n'";
		}
		try {
        	p = Runtime.getRuntime().exec("sh");
            OutputStreamWriter osw = new OutputStreamWriter(p.getOutputStream());
            osw.write(command);
            osw.close();
		}
		catch (Exception e) {
			System.out.println(e.getMessage());
		}
	}
}
