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