@Override public String apply(ExtendedPluginInfo pluginInfo) { return pluginInfo.getLocalPluginInfo().getPluginId(); } });
private File installPlugin(File pluginJarFile, PluginInfo pluginInfo) throws IOException { File globalUserPluginDir = UserConfig.getUserPluginLibDir(); globalUserPluginDir.mkdirs(); File targetPluginJarFile = new File(globalUserPluginDir, String.format("syncany-plugin-%s-%s.jar", pluginInfo.getPluginId(), pluginInfo.getPluginVersion())); logger.log(Level.INFO, "Installing plugin from " + pluginJarFile + " to " + targetPluginJarFile + " ..."); FileUtils.copyFile(pluginJarFile, targetPluginJarFile); return targetPluginJarFile; }
private PluginOperationResult executeInstallFromLocalFile(File pluginJarFile) throws Exception { eventBus.post(new PluginInstallExternalEvent(pluginJarFile.getAbsolutePath())); PluginInfo pluginInfo = readPluginInfoFromJar(pluginJarFile); checkPluginNotInstalled(pluginInfo.getPluginId()); checkPluginCompatibility(pluginInfo); File targetPluginJarFile = installPlugin(pluginJarFile, pluginInfo); result.setSourcePluginPath(pluginJarFile.getPath()); result.setTargetPluginPath(targetPluginJarFile.getPath()); result.setAffectedPluginInfo(pluginInfo); result.setResultCode(PluginResultCode.OK); return result; }
if (options.getPluginId() != null && !localPluginInfo.getPluginId().equals(options.getPluginId())) { continue; Plugin plugin = Plugins.get(localPluginInfo.getPluginId()); File pluginJarFile = getJarFile(plugin); boolean canUninstall = canUninstall(pluginJarFile); pluginInfos.put(localPluginInfo.getPluginId(), extendedPluginInfo); if (options.getPluginId() != null && !remotePluginInfo.getPluginId().equals(options.getPluginId())) { continue; ExtendedPluginInfo extendedPluginInfo = pluginInfos.get(remotePluginInfo.getPluginId()); boolean localPluginInstalled = extendedPluginInfo != null; pluginInfos.put(remotePluginInfo.getPluginId(), extendedPluginInfo);
private void printPluginDetails(PluginInfo pluginInfo) { out.println("Plugin details:"); out.println("- ID: " + pluginInfo.getPluginId()); out.println("- Name: " + pluginInfo.getPluginName()); out.println("- Version: " + pluginInfo.getPluginVersion()); out.println(); }
private PluginOperationResult executeInstallFromUrl(String downloadJarUrl) throws Exception { eventBus.post(new PluginInstallExternalEvent(downloadJarUrl)); File tempPluginJarFile = downloadPluginJar(downloadJarUrl); PluginInfo pluginInfo = readPluginInfoFromJar(tempPluginJarFile); checkPluginNotInstalled(pluginInfo.getPluginId()); checkPluginCompatibility(pluginInfo); File targetPluginJarFile = installPlugin(tempPluginJarFile, pluginInfo); result.setSourcePluginPath(downloadJarUrl); result.setTargetPluginPath(targetPluginJarFile.getPath()); result.setAffectedPluginInfo(pluginInfo); result.setResultCode(PluginResultCode.OK); return result; }
private void printPluginConflictWarning(PluginOperationResult operationResult) { List<String> conflictingPluginIds = operationResult.getConflictingPluginIds(); if (conflictingPluginIds != null && conflictingPluginIds.size() > 0) { out.println("---------------------------------------------------------------------------"); out.printf(" WARNING: The installed plugin '%s' conflicts with other installed:\n", operationResult.getAffectedPluginInfo().getPluginId()); out.printf(" plugin(s): %s\n", StringUtil.join(conflictingPluginIds, ", ")); out.println(); out.println(" If you'd like to use these plugins in the daemon, it is VERY likely"); out.println(" that parts of the application WILL CRASH. Data corruption might occur!"); out.println(); out.println(" Using the plugins outside of the daemon (sy <command> ...) might also"); out.println(" be an issue. Details about this in issue #154."); out.println("---------------------------------------------------------------------------"); out.println(); } }
tableValues.add(new String[]{pluginInfo.getPluginId(), pluginInfo.getPluginName(), localVersionStr, installedStr, remoteVersionStr, updatableStr, thirdPartyStr});