Révision 3336

TXM/trunk/org.txm.perl.rcp/plugin.xml (revision 3336)
6 6
      <page
7 7
            category="org.txm.rcp.preferences.ScriptPreferencePage"
8 8
            class="org.txm.perl.rcp.preferences.PerlPreferencesPage"
9
            id="org.txm.perl.rcp.preferences.PerlPreferencesPage"
9
            id="s"
10 10
            name="Perl">
11 11
      </page>
12 12
   </extension>
TXM/trunk/org.txm.perl.rcp/META-INF/MANIFEST.MF (revision 3336)
8 8
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 9
Require-Bundle: org.txm.rcp;bundle-version="0.8.2",
10 10
 org.txm.perl.core;bundle-version="1.0.0"
11
Export-Package: org.txm.perl.rcp.preferences
TXM/trunk/org.txm.python.rcp/META-INF/MANIFEST.MF (revision 3336)
8 8
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 9
Require-Bundle: org.txm.python.core;bundle-version="1.0.0";visibility:=reexport,
10 10
 org.txm.rcp;bundle-version="0.8.2"
11
Export-Package: org.txm.python.rcp
TXM/trunk/org.txm.perl.feature/feature.xml (revision 3336)
2 2
<feature
3 3
      id="org.txm.perl.feature"
4 4
      label="org.txm.perl.feature"
5
      version="1.0.0.qualifier">
5
      version="1.0.0.qualifier"
6
      license-feature="org.txm.core.feature"
7
      license-feature-version="1.0.0.qualifier">
6 8

  
7 9
   <description url="http://www.example.com/description">
8
      [Enter Feature Description here.]
10
      Be able to run Perl script from TXM File and Macro views
9 11
   </description>
10 12

  
11 13
   <copyright url="http://www.example.com/copyright">
TXM/trunk/org.txm.perl.core/plugin.xml (revision 3336)
4 4
   <extension
5 5
         point="org.txm.core.engines.ScriptEngine">
6 6
      <ScriptEngine
7
            class="PerlScriptEngine"
7
            class="org.txm.perl.core.PerlScriptEngine"
8 8
            name="perl">
9 9
      </ScriptEngine>
10 10
   </extension>
11 11
   <extension
12 12
         point="org.eclipse.core.runtime.preferences">
13 13
      <initializer
14
            class="PerlPreferences">
14
            class="org.txm.perl.core.PerlPreferences">
15 15
      </initializer>
16 16
   </extension>
17 17

  
TXM/trunk/org.txm.perl.core/META-INF/MANIFEST.MF (revision 3336)
7 7
Automatic-Module-Name: org.txm.perl.core
8 8
Bundle-RequiredExecutionEnvironment: JavaSE-1.8
9 9
Require-Bundle: org.txm.core;bundle-version="0.8.2";visibility:=reexport
10
Export-Package: org.txm.perl.core
TXM/trunk/org.txm.perl.core/src/org/txm/perl/core/PerlScriptEngine.java (revision 3336)
5 5
import java.io.File;
6 6
import java.io.InputStreamReader;
7 7
import java.util.ArrayList;
8
import java.util.Arrays;
8 9
import java.util.HashMap;
9 10

  
10 11
import org.eclipse.core.runtime.IProgressMonitor;
......
43 44
	}
44 45

  
45 46
	@Override
46
	public IStatus executeScript(File script, HashMap<String, Object> env) {
47
	public IStatus executeScript(File script, HashMap<String, Object> env, String stringArgs) {
47 48
		ArrayList<String> cmd = new ArrayList<String>();
48 49
		cmd.add(script.getAbsolutePath());
49 50

  
......
61 62
			return runPerl(cmd, env);
62 63
		
63 64
	}
65
	
66
	public boolean canExecute(File script) {
67
		
68
		File runner = new File(PerlPreferences.getInstance().getString(PerlPreferences.HOME),
69
				PerlPreferences.getInstance().getString(PerlPreferences.EXECUTABLE_NAME));
70
		
71
		return script.isFile() && script.canExecute() && runner.canExecute() && runner.isFile();
72
	}
64 73

  
65 74
	private static IStatus runPerl(ArrayList<String> cmd, HashMap<String, Object> env) {
66 75
		try {
76
			
77
			String additionalParametersString = PerlPreferences.getInstance().getString(PerlPreferences.ADDITIONAL_PARAMETERS);
78
			String[] additionalParameters = additionalParametersString.split("\t");
79
			if (additionalParametersString.length() > 0 && additionalParameters.length > 0) {
80
				cmd.addAll(0, Arrays.asList(additionalParameters));
81
			}
82
			
67 83
			String path = PerlPreferences.getInstance().getString(PerlPreferences.HOME);
68
			String execFileName = PerlPreferences.getInstance().getString(PerlPreferences.EXECUTABLE_NAME);
84
			String perlRunner = PerlPreferences.getInstance().getString(PerlPreferences.EXECUTABLE_NAME);
69 85
			if (path != null && path.length() > 0) {
70
				cmd.add(0, new File(path, execFileName).getAbsolutePath());
86
				cmd.add(0, new File(path, perlRunner).getAbsolutePath());
71 87
			} else {
72
				cmd.add(0, execFileName);
88
				cmd.add(0, perlRunner);
73 89
			}
74
			for (String k : env.keySet()) {
75
				cmd.add(k);
76
				Object v = env.get(k);
77
				if (v != null) {
78
					cmd.add(v.toString());
79
				}
80
			}
90
			
81 91
			ProcessBuilder pb = new ProcessBuilder(cmd);
82 92
			pb.redirectErrorStream(true);
83 93

  

Formats disponibles : Unified diff