package net.sourceforge.phpdt.internal.launching;

import java.io.File;
import java.io.IOException;

import org.eclipse.core.internal.resources.OS;
import org.eclipse.core.runtime.IPath;

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;
	}
}