[Pydev-cvs] org.python.pydev/src/org/python/pydev/runners SimpleRunner.java,1.7,1.8 SimplePythonRunn
Brought to you by:
fabioz
From: Fabio Z. <fa...@us...> - 2005-08-20 20:29:12
|
Update of /cvsroot/pydev/org.python.pydev/src/org/python/pydev/runners In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12276/src/org/python/pydev/runners Modified Files: SimpleRunner.java SimplePythonRunner.java SimpleJythonRunner.java Log Message: Index: SimpleRunner.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/runners/SimpleRunner.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** SimpleRunner.java 17 Aug 2005 01:55:10 -0000 1.7 --- SimpleRunner.java 20 Aug 2005 20:28:58 -0000 1.8 *************** *** 136,154 **** } /** ! * Formats the script to the windows environment (if needed), adding '"' to the start and end of the parameter ! * ! * @param param the parameter that might be formatted ! * ! * @return the formatted parameter */ ! public static String formatParamToExec(String param) { ! if(isWindowsPlatform()){ //in windows, we have to put python "path_to_file.py" ! if(param.startsWith("\"") == false){ ! param = "\""+param+"\""; ! } } ! return param; ! } /** --- 136,185 ---- } + /** ! * copied from org.eclipse.jdt.internal.launching.StandardVMRunner ! * @param args - other arguments to be added to the command line (may be null) ! * @return */ ! public static String getCommandLineAsString(String[] commandLine, String ... args) { ! if(args != null && args.length > 0){ ! String[] newCommandLine = new String[commandLine.length + args.length]; ! System.arraycopy(commandLine, 0, newCommandLine, 0, commandLine.length); ! System.arraycopy(args, 0, newCommandLine, commandLine.length, args.length); ! commandLine = newCommandLine; } ! ! ! if (commandLine.length < 1) ! return ""; //$NON-NLS-1$ ! StringBuffer buf= new StringBuffer(); ! for (int i= 0; i < commandLine.length; i++) { ! if(commandLine[i] == null){ ! continue; //ignore nulls (changed from original code) ! } ! ! buf.append(' '); ! char[] characters= commandLine[i].toCharArray(); ! StringBuffer command= new StringBuffer(); ! boolean containsSpace= false; ! for (int j = 0; j < characters.length; j++) { ! char character= characters[j]; ! if (character == '\"') { ! command.append('\\'); ! } else if (character == ' ') { ! containsSpace = true; ! } ! command.append(character); ! } ! if (containsSpace) { ! buf.append('\"'); ! buf.append(command.toString()); ! buf.append('\"'); ! } else { ! buf.append(command.toString()); ! } ! } ! return buf.toString(); ! } /** *************** *** 174,178 **** pythonpath.append(separator); } ! pythonpath.append(REF.getFileAbsolutePath(new File((String) paths.get(i)))); } return pythonpath.toString(); --- 205,210 ---- pythonpath.append(separator); } ! String path = REF.getFileAbsolutePath(new File((String) paths.get(i))); ! pythonpath.append(path); } return pythonpath.toString(); *************** *** 228,236 **** return runAndGetOutput(executionString, workingDir, project, new NullProgressMonitor()); } ! /** * shortcut */ ! public String runAndGetOutput(String script, String args, File workingDir) { return runAndGetOutput(script, args, workingDir, null); } --- 260,268 ---- return runAndGetOutput(executionString, workingDir, project, new NullProgressMonitor()); } ! /** * shortcut */ ! public String runAndGetOutput(String script, String[] args, File workingDir) { return runAndGetOutput(script, args, workingDir, null); } *************** *** 259,263 **** * @return a string with the output of the process (stdout) */ ! public abstract String runAndGetOutput(String script, String args, File workingDir, IProject project); } --- 291,295 ---- * @return a string with the output of the process (stdout) */ ! public abstract String runAndGetOutput(String script, String args[], File workingDir, IProject project); } Index: SimpleJythonRunner.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/runners/SimpleJythonRunner.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** SimpleJythonRunner.java 18 Aug 2005 01:32:15 -0000 1.11 --- SimpleJythonRunner.java 20 Aug 2005 20:28:58 -0000 1.12 *************** *** 87,93 **** try { String javaLoc = JavaVmLocationFinder.findDefaultJavaExecutable().getCanonicalPath(); - javaLoc = formatParamToExec(javaLoc); ! String executionString = javaLoc + " -classpath " + jythonJar + " org.python.util.jython " + script; return runAndGetOutput(executionString, workingDir, project, monitor); --- 87,99 ---- try { String javaLoc = JavaVmLocationFinder.findDefaultJavaExecutable().getCanonicalPath(); ! String[] s = new String[]{ ! javaLoc, ! "-classpath", ! jythonJar, ! "org.python.util.jython" ! ,script ! }; ! String executionString = getCommandLineAsString(s); return runAndGetOutput(executionString, workingDir, project, monitor); *************** *** 98,102 **** } @Override ! public String runAndGetOutput(String script, String args, File workingDir, IProject project) { //"java.exe" -classpath "C:\bin\jython21\jython.jar" -Dpython.path xxx;xxx;xxx org.python.util.jython script %ARGS% --- 104,108 ---- } @Override ! public String runAndGetOutput(String script, String[] args, File workingDir, IProject project) { //"java.exe" -classpath "C:\bin\jython21\jython.jar" -Dpython.path xxx;xxx;xxx org.python.util.jython script %ARGS% *************** *** 119,122 **** --- 125,129 ---- IInterpreterManager interpreterManager = PydevPlugin.getJythonInterpreterManager(); String javaLoc = JavaVmLocationFinder.findDefaultJavaExecutable().getCanonicalPath(); + File file = new File(javaLoc); if(file.exists() == false ){ *************** *** 126,131 **** throw new RuntimeException("The java location found is a directory. "+javaLoc); } - javaLoc = formatParamToExec(javaLoc); String jythonJar = interpreterManager.getDefaultInterpreter(); InterpreterInfo info = interpreterManager.getInterpreterInfo(jythonJar, new NullProgressMonitor()); --- 133,139 ---- throw new RuntimeException("The java location found is a directory. "+javaLoc); } + + String jythonJar = interpreterManager.getDefaultInterpreter(); InterpreterInfo info = interpreterManager.getInterpreterInfo(jythonJar, new NullProgressMonitor()); *************** *** 137,147 **** jythonPath.append(pathSeparator); } - lib = formatParamToExec(lib); jythonPath.append(lib); } ! String executionString = javaLoc + ! " -Dpython.path="+ jythonPath+ ! " -classpath "+jythonJar+pathSeparator+jythonPath+ ! " org.python.util.jython "+script; return executionString; } --- 145,163 ---- jythonPath.append(pathSeparator); } jythonPath.append(lib); } ! ! ! String[] s = new String[]{ ! javaLoc , ! "-Dpython.path="+ jythonPath.toString(), ! "-classpath", ! jythonJar+pathSeparator+jythonPath, ! "org.python.util.jython", ! script ! }; ! String executionString = getCommandLineAsString(s); ! ! System.out.println("running jython: "+executionString); return executionString; } Index: SimplePythonRunner.java =================================================================== RCS file: /cvsroot/pydev/org.python.pydev/src/org/python/pydev/runners/SimplePythonRunner.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** SimplePythonRunner.java 13 Aug 2005 21:04:38 -0000 1.4 --- SimplePythonRunner.java 20 Aug 2005 20:28:58 -0000 1.5 *************** *** 43,52 **** * @return a string with the output of the process (stdout) */ ! public String runAndGetOutput(String script, String args, File workingDir, IProject project) { ! ! script = formatParamToExec(script); ! String executionString = makeExecutableCommandStr(script, args); - //System.out.println(executionString); return runAndGetOutput(executionString, workingDir, project); } --- 43,48 ---- * @return a string with the output of the process (stdout) */ ! public String runAndGetOutput(String script, String[] args, File workingDir, IProject project) { String executionString = makeExecutableCommandStr(script, args); return runAndGetOutput(executionString, workingDir, project); } *************** *** 57,64 **** * @return the string with the command to run the passed script with jython */ ! public static String makeExecutableCommandStr(String script, String args) { ! script = formatParamToExec(script); ! return PydevPlugin.getPythonInterpreterManager().getDefaultInterpreter() + " -u " + script + " " + args; } --- 53,64 ---- * @return the string with the command to run the passed script with jython */ ! public static String makeExecutableCommandStr(String script, String[] args) { ! String[] s = new String[]{ ! PydevPlugin.getPythonInterpreterManager().getDefaultInterpreter() , ! "-u" , ! script , ! }; ! return getCommandLineAsString(s, args); } *************** *** 75,93 **** * @return the stdout of the run (if any) */ ! public String runAndGetOutputWithInterpreter(String interpreter, String script, String args, File workingDir, IProject project, IProgressMonitor monitor) { monitor.setTaskName("Mounting executable string..."); monitor.worked(5); ! script = formatParamToExec(script); - String executionString; - if(args != null){ - executionString = interpreter + " -u " + script + " " + args; - }else{ - executionString = interpreter + " -u " + script; - } monitor.worked(1); ! //System.out.println(executionString); ! return runAndGetOutput(executionString, workingDir, project, monitor); } --- 75,90 ---- * @return the stdout of the run (if any) */ ! public String runAndGetOutputWithInterpreter(String interpreter, String script, String[] args, File workingDir, IProject project, IProgressMonitor monitor) { monitor.setTaskName("Mounting executable string..."); monitor.worked(5); ! String[] s = new String[]{ ! interpreter, ! "-u" , ! script , ! }; monitor.worked(1); ! return runAndGetOutput(getCommandLineAsString(s,args), workingDir, project, monitor); } *************** *** 110,116 **** Process process = null; try { ! monitor.setTaskName("Making pythonpath environment..."); String[] envp = getEnvironment(project); ! monitor.setTaskName("Making exec."); process = Runtime.getRuntime().exec(executionString, envp, workingDir); } catch (Exception e) { --- 107,113 ---- Process process = null; try { ! monitor.setTaskName("Making pythonpath environment..."+executionString); String[] envp = getEnvironment(project); ! monitor.setTaskName("Making exec..."+executionString); process = Runtime.getRuntime().exec(executionString, envp, workingDir); } catch (Exception e) { |