/** Scans classpath resources for scripts (e.g., inside JAR files). */ private int scanResources(final List<ScriptInfo> scripts, final Set<URL> urls) { if (pathPrefix == null) return 0; // NB: We leave the baseDirectory argument null, because scripts on disk // will be picked up in the subsequent logic, which handles multiple // script directories rather than being limited to a single one. final Map<String, URL> scriptMap = // FileUtils.findResources(null, pathPrefix, null); return createInfos(scripts, urls, scriptMap, null); }
/** Scans classpath resources for scripts (e.g., inside JAR files). */ private int scanResources(final List<ScriptInfo> scripts, final Set<URL> urls) { if (pathPrefix == null) return 0; // NB: We leave the baseDirectory argument null, because scripts on disk // will be picked up in the subsequent logic, which handles multiple // script directories rather than being limited to a single one. final Map<String, URL> scriptMap = // FileUtils.findResources(null, pathPrefix, null); return createInfos(scripts, urls, scriptMap, null); }
@Override public List<SearchResult> search(String text, boolean fuzzy) { // Get list of all templates in possible template paths // templateService.getTemplates() ?? final String templatePath = "script_templates"; File baseDir = appService.getApp().getBaseDirectory(); Map<String, URL> templates = FileUtils.findResources(null, templatePath, baseDir); LinkedHashMap<String, URL> matches = new LinkedHashMap<>(); // Filter those templates with name matching text templates.entrySet().stream() // .filter(entry -> entry.getKey().toLowerCase().contains(text.toLowerCase())) .forEach(entry -> matches.put(entry.getKey(), entry.getValue())); // Wrap each template into a TemplateSearchResult return matches.entrySet().stream() // .map(entry -> new TemplateSearchResult(entry.getKey(), entry.getValue())) .collect(Collectors.toList()); } }
return findResources(regex, urls);
return findResources(regex, urls);
/** Scans a directory for scripts. */ private int scanDirectory(final List<ScriptInfo> scripts, final Set<URL> urls, final File dir) { if (!dir.exists()) { final String path = dir.getAbsolutePath(); log.debug("Ignoring non-existent scripts directory: " + path); return 0; } final MenuPath menuPrefix = scriptService.getMenuPrefix(dir); try { final Set<URL> dirURL = Collections.singleton(dir.toURI().toURL()); final Map<String, URL> scriptMap = // FileUtils.findResources(null, dirURL); return createInfos(scripts, urls, scriptMap, menuPrefix); } catch (final MalformedURLException exc) { log.error("Invalid script directory: " + dir, exc); return 0; } }
/** Scans a directory for scripts. */ private int scanDirectory(final List<ScriptInfo> scripts, final Set<URL> urls, final File dir) { if (!dir.exists()) { final String path = dir.getAbsolutePath(); log.debug("Ignoring non-existent scripts directory: " + path); return 0; } final MenuPath menuPrefix = scriptService.getMenuPrefix(dir); try { final Set<URL> dirURL = Collections.singleton(dir.toURI().toURL()); final Map<String, URL> scriptMap = // FileUtils.findResources(null, dirURL); return createInfos(scripts, urls, scriptMap, menuPrefix); } catch (final MalformedURLException exc) { log.error("Invalid script directory: " + dir, exc); return 0; } }