package net.sourceforge.phpdt.internal.launching; import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.util.ArrayList; import net.sourceforge.phpdt.internal.ui.phpdocexport.JavadocExportMessages; import net.sourceforge.phpdt.internal.ui.util.ExceptionHandler; import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.debug.core.DebugPlugin; import org.eclipse.debug.core.IDebugEventSetListener; import org.eclipse.debug.core.ILaunch; import org.eclipse.debug.core.ILaunchConfigurationType; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.core.ILaunchManager; import org.eclipse.debug.core.Launch; import org.eclipse.debug.core.model.IProcess; import org.eclipse.debug.ui.IDebugUIConstants; public class PHPInterpreter { protected File installLocation; public PHPInterpreter(File interpreter) { installLocation = interpreter; } public File getInstallLocation() { return installLocation; } public void setInstallLocation(File interpreter) { installLocation = interpreter; } public String getCommand() { return installLocation.toString(); } // private boolean executePHPProcess(String arguments, File workingDirectory, String[] env) { // Process process = null; // try { // StringBuffer buf = new StringBuffer(); // buf.append(getCommand() + " " + arguments); // process = Runtime.getRuntime().exec(buf.toString(), env, workingDirectory); // if (process != null) { // // construct a formatted command line for the process properties // // // for (int i= 0; i < args.length; i++) { // // buf.append(args[i]); // // buf.append(' '); // // } // // ILaunchConfigurationWorkingCopy wc = null; // try { // ILaunchConfigurationType lcType = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurationType( // PHPLaunchConfigurationAttribute.PHP_LAUNCH_CONFIGURATION_TYPE); // String name = "PHP Launcher"; //$NON-NLS-1$ // wc = lcType.newInstance(null, name); // wc.setAttribute(IDebugUIConstants.ATTR_FAVORITE_GROUPS, true); // // ILaunch newLaunch = new Launch(wc, ILaunchManager.RUN_MODE, null); // IProcess iprocess = DebugPlugin.newProcess(newLaunch, process, "PHP Process"); //$NON-NLS-1$ // iprocess.setAttribute(IProcess.ATTR_CMDLINE, buf.toString()); // iprocess.setAttribute(IProcess.ATTR_PROCESS_TYPE, PHPLaunchConfigurationAttribute.PHP_LAUNCH_PROCESS_TYPE); // // DebugPlugin.getDefault().getLaunchManager().addLaunch(newLaunch); // // } catch (CoreException e) { // } // // return true; // // } // } catch (IOException e) { // return false; // } // return false; // // } public Process exec(String arguments, File workingDirectory, String[] env) throws IOException { return Runtime.getRuntime().exec(getCommand() + " " + arguments, env, workingDirectory); // executePHPProcess(arguments, workingDirectory, env); } public boolean equals(Object other) { if (other instanceof PHPInterpreter) { PHPInterpreter otherInterpreter = (PHPInterpreter) other; return installLocation.equals(otherInterpreter.getInstallLocation()); } return false; } }