|
29 | 29 |
|
30 | 30 | package org.scijava.plugins.scripting.python; |
31 | 31 |
|
| 32 | +import java.io.File; |
| 33 | +import java.io.IOException; |
32 | 34 | import java.util.Arrays; |
33 | 35 | import java.util.List; |
| 36 | +import java.util.Map; |
34 | 37 |
|
35 | 38 | import javax.script.ScriptEngine; |
36 | 39 |
|
37 | 40 | import org.scijava.Priority; |
| 41 | +import org.scijava.launcher.Config; |
38 | 42 | import org.scijava.plugin.Plugin; |
39 | 43 | import org.scijava.script.AbstractScriptLanguage; |
40 | 44 | import org.scijava.script.ScriptLanguage; |
|
47 | 51 | * @see ScriptEngine |
48 | 52 | */ |
49 | 53 | @Plugin(type = ScriptLanguage.class, name = "Python (pyimagej)", |
50 | | - priority = Priority.VERY_LOW) |
| 54 | + priority = Priority.VERY_HIGH) |
51 | 55 | public class PythonScriptLanguage extends AbstractScriptLanguage { |
52 | 56 |
|
| 57 | + private Boolean isActive = null; |
| 58 | + |
| 59 | + @Override |
| 60 | + public boolean isActive() { |
| 61 | + if (isActive == null) { |
| 62 | + String configFileProp = System.getProperty("scijava.app.config-file"); |
| 63 | + File configFile = configFileProp == null ? null : new File( |
| 64 | + configFileProp); |
| 65 | + if (configFile != null && configFile.canRead()) { |
| 66 | + try { |
| 67 | + final Map<String, String> config = Config.load(configFile); |
| 68 | + |
| 69 | + final String cfgLaunchMode = config.get("launch-mode"); |
| 70 | + if (cfgLaunchMode != null) isActive = cfgLaunchMode.equals("PYTHON"); |
| 71 | + } |
| 72 | + catch (IOException e) { |
| 73 | + // Proceed gracefully if config file is not accessible. |
| 74 | + } |
| 75 | + } |
| 76 | + } |
| 77 | + return (isActive == null) ? false : isActive; |
| 78 | + } |
| 79 | + |
53 | 80 | @Override |
54 | 81 | public String getEngineName() { |
55 | 82 | return "python"; |
|
0 commit comments