package net.sourceforge.phpdt.internal.launching;
import java.io.File;
+import java.io.FileWriter;
import java.io.IOException;
+import java.util.ArrayList;
-import org.eclipse.core.runtime.IPath;
+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 {
- //public final String endOfOptionsDelimeter = " -- ";
-
- protected IPath installLocation;
- protected String name;
-
- public PHPInterpreter(String aName, IPath validInstallLocation) {
- name = aName;
- installLocation = validInstallLocation;
- }
-
- public IPath getInstallLocation() {
- return installLocation;
- }
-
- public void setInstallLocation(IPath validInstallLocation) {
- installLocation = validInstallLocation;
- }
-
- public String getName() {
- return name;
- }
-
- public void setName(String newName) {
- name = newName;
- }
-
- public String getCommand() {
- String directory = installLocation.toOSString() + File.separator;
- if (new File(directory + "php.exe").isFile())
- return directory + "php.exe";
-
- if (new File(directory, "php").isFile())
- return directory + "php";
-
- return null;
- }
-
- public Process exec(String arguments, File workingDirectory) throws IOException {
- return Runtime.getRuntime().exec(this.getCommand() + " " + arguments, null, workingDirectory);
- }
-
- public boolean equals(Object other) {
- if (other instanceof PHPInterpreter) {
- PHPInterpreter otherInterpreter = (PHPInterpreter) other;
- if (name.equals(otherInterpreter.getName()))
- return installLocation.equals(otherInterpreter.getInstallLocation());
- }
-
- return false;
- }
-}
+
+ 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;
+ }
+}
\ No newline at end of file