void (Path oldConfigDir, Path newConfigDir, @Nullable Path oldIdeHome, Logger log, ConfigImportOptions importOptions) { if (oldConfigDir.equals(newConfigDir)) { log.info("New config directory is the same as the old one, no import needed."); return; } Path oldPluginsDir = oldConfigDir.resolve(PLUGINS); if (!Files.isDirectory(oldPluginsDir)) { oldPluginsDir = null; if (oldIdeHome != null) { oldPluginsDir = getSettingsPath(oldIdeHome, PathManager.PROPERTY_PLUGINS_PATH, ConfigImportHelper::defaultPluginsPath); } if (oldPluginsDir == null) { oldPluginsDir = oldConfigDir.getFileSystem().getPath(defaultPluginsPath(getNameWithVersion(oldConfigDir))); } } Path newPluginsDir = newConfigDir.getFileSystem().getPath(PathManager.getPluginsPath()); try { log.info(String.format( "Importing configs: oldConfigDir=[%s], newConfigDir=[%s], oldIdeHome=[%s], oldPluginsDir=[%s], newPluginsDir=[%s]", oldConfigDir, newConfigDir, oldIdeHome, oldPluginsDir, newPluginsDir)); doImport(oldConfigDir, newConfigDir, oldIdeHome, oldPluginsDir, newPluginsDir, importOptions); } catch (Exception e) { log.warn(e); String message = BootstrapBundle.message("import.settings.failed", IoErrorText.message(e)); StartupErrorReporter.showMessage(BootstrapBundle.message("import.settings.failed.title"), message, false); } }