Revision 542 org.gvsig.scripting/trunk/org.gvsig.scripting/org.gvsig.scripting.app/org.gvsig.scripting.app.mainplugin/src/main/java/org/gvsig/scripting/app/extension/ScriptingExtension.java

View differences:

ScriptingExtension.java
60 60
import org.slf4j.Logger;
61 61
import org.slf4j.LoggerFactory;
62 62
import org.gvsig.installer.lib.spi.InstallerProviderLocator;
63
import org.gvsig.tools.ToolsLocator;
64
import org.gvsig.tools.i18n.I18nManager;
63 65

  
64

  
65 66
public class ScriptingExtension extends Extension {
66 67

  
67 68
    private static final Logger logger = LoggerFactory.getLogger(ScriptingExtension.class);
......
138 139
        manager.setHomeFolder(home);
139 140

  
140 141
        this.addLinkToPreviousVersion(manager);
141
        
142

  
142 143
        List<File> pluginsFolders = new ArrayList<>();
143 144
        for (File f : pluginManager.getPluginsFolders()) {
144 145
            pluginsFolders.addAll(Arrays.asList(f.listFiles()));
......
168 169
            try {
169 170
                FileUtils.forceMkdir(localAddonRepositoryFolder);
170 171
            } catch (IOException ex) {
171
                logger.info("Can't create addons folder in '"+localAddonRepositoryFolder.getAbsolutePath()+"'.",ex);
172
                logger.info("Can't create addons folder in '" + localAddonRepositoryFolder.getAbsolutePath() + "'.", ex);
172 173
            }
173 174
        }
174 175
        ProviderManager providerManager = InstallerProviderLocator.getProviderManager();
......
212 213
        @Override
213 214
        public void run() {
214 215
            final ScriptingManager manager = ScriptingLocator.getManager();
215
            PluginsManager pluginManager = PluginsLocator.getManager();
216
            final PluginsManager pluginManager = PluginsLocator.getManager();
217
            final ApplicationManager application = ApplicationLocator.getManager();
218
            final I18nManager i18nManager = ToolsLocator.getI18nManager();
216 219

  
217 220
//            try {
218 221
//                ScriptingHelpManager helpmanager = manager.getHelpManager();
......
232 235
//            } catch (Exception e) {
233 236
//                logger.info("Can't add metothods.", e);
234 237
//            }
238
            try {
239
                List<File> pluginsFolders = new ArrayList<>();
240
                for (File f : pluginManager.getPluginsFolders()) {
241
                    pluginsFolders.addAll(Arrays.asList(f.listFiles()));
242
                }
235 243

  
236
            List<File> pluginsFolders = new ArrayList<>();
237
            for (File f : pluginManager.getPluginsFolders()) {
238
                pluginsFolders.addAll(Arrays.asList(f.listFiles()));
239
            }
240

  
241
            File autorun_file = null;
242
            ScriptingBaseScript autorun;
243
            for (File pluginFolder : pluginsFolders) {
244
                autorun_file = new File(pluginFolder, "scripting/scripts/autorun.inf");
245
                if (autorun_file.exists()) {
246
                    logger.info("running autorun script '" + autorun_file.getAbsolutePath() + "'.");
247
                    autorun = manager.getScript(autorun_file);
248
                    try {
249
                        autorun.run();
250
                    } catch (Exception ex) {
251
                        logger.warn("Can't execute autorun from '" + autorun_file.getAbsolutePath() + "'.", ex);
244
                File autorun_file = null;
245
                ScriptingBaseScript autorun;
246
                application.message(
247
                        i18nManager.getTranslation("_Searching_autorun_scripts_Xhorizontal_ellipsisX"),
248
                        JOptionPane.INFORMATION_MESSAGE
249
                );
250
                for (File pluginFolder : pluginsFolders) {
251
                    autorun_file = new File(pluginFolder, "scripting/scripts/autorun.inf");
252
                    if (autorun_file.exists()) {
253
                        logger.info("running autorun script '" + autorun_file.getAbsolutePath() + "'.");
254
                        autorun = manager.getScript(autorun_file);
255
                        try {
256
                            application.message(
257
                                    i18nManager.getTranslation(
258
                                            "_Running_autorun_script_from_XnameX",
259
                                            new String[]{autorun.getFile().getParentFile().getName()}
260
                                    ),
261
                                    JOptionPane.INFORMATION_MESSAGE
262
                            );
263
                        } catch (Exception ex) {
264
                            // Ignore it
265
                        }
266
                        try {
267
                            autorun.run();
268
                        } catch (Exception ex) {
269
                            logger.warn("Can't execute autorun from '" + autorun_file.getAbsolutePath() + "'.", ex);
270
                        }
252 271
                    }
253 272
                }
254
            }
255 273

  
256
            SimpleFileVisitor<Path> visitor = new SimpleFileVisitor<Path>() {
257
                @Override
258
                public FileVisitResult visitFile(Path path, BasicFileAttributes bfa) throws IOException {
259
                    File file = path.toFile();
260
                    if ("autorun.inf".equalsIgnoreCase(file.getName())) {
261
                        if (file.exists()) {
262
                            logger.info("running autorun script '" + file.getAbsolutePath() + "'.");
263
                            ScriptingBaseScript autorun = manager.getScript(file);
264
                            try {
265
                                autorun.run();
266
                            } catch (Exception ex) {
267
                                logger.warn("Can't execute autorun from '" + file.getAbsolutePath() + "'.", ex);
274
                SimpleFileVisitor<Path> visitor = new SimpleFileVisitor<Path>() {
275
                    @Override
276
                    public FileVisitResult visitFile(Path path, BasicFileAttributes bfa) throws IOException {
277
                        File file = path.toFile();
278
                        if ("autorun.inf".equalsIgnoreCase(file.getName())) {
279
                            if (file.exists()) {
280
                                logger.info("running autorun script '" + file.getAbsolutePath() + "'.");
281
                                ScriptingBaseScript autorun = manager.getScript(file);
282
                                try {
283
                                    application.message(
284
                                            i18nManager.getTranslation(
285
                                                    "_Running_autorun_script_from_XnameX",
286
                                                    new String[]{autorun.getFile().getParentFile().getName()}
287
                                            ),
288
                                            JOptionPane.INFORMATION_MESSAGE
289
                                    );
290
                                } catch (Exception ex) {
291
                                    // Ignore
292
                                }
293
                                try {
294
                                    autorun.run();
295
                                } catch (Exception ex) {
296
                                    logger.warn("Can't execute autorun from '" + file.getAbsolutePath() + "'.", ex);
297
                                }
268 298
                            }
269 299
                        }
300
                        return FileVisitResult.CONTINUE;
270 301
                    }
271
                    return FileVisitResult.CONTINUE;
302
                };
303
                try {
304
                    Files.walkFileTree(Paths.get(manager.getRootUserFolder().toURI()), visitor);
305
                    List<ScriptingFolder> folders = manager.getAlternativeUserFolders();
306
                    for (ScriptingFolder folder : folders) {
307
                        Files.walkFileTree(Paths.get(folder.getFile().toURI()), visitor);
308
                    }
309
                } catch (Exception ex) {
310
                    logger.warn("Can't execute autoruns in home.", ex);
272 311
                }
273
            };
274
            try {
275
                Files.walkFileTree(Paths.get(manager.getRootUserFolder().toURI()), visitor);
276
                List<ScriptingFolder> folders = manager.getAlternativeUserFolders();
277
                for (ScriptingFolder folder : folders) {
278
                    Files.walkFileTree(Paths.get(folder.getFile().toURI()), visitor);
279
                }
280
            } catch (Exception ex) {
281
                logger.warn("Can't execute autoruns in home.", ex);
312
            } finally {
313
                logger.info("Running autorun scripts terminated.");
314
                application.message("", JOptionPane.INFORMATION_MESSAGE);
282 315
            }
283
            logger.info("Running autorun scripts terminated.");
284

  
285 316
        }
286 317

  
287 318
    }

Also available in: Unified diff