From 5b9b2fc3e0f2f187bbbd934adddf4f7bb19909d3 Mon Sep 17 00:00:00 2001 From: Dmitrii Gridin Date: Mon, 29 Sep 2025 17:41:26 +0200 Subject: [PATCH] [kotlin] project-model-updater: prettify libraries regeneration To reduce noice and prepare for up-to-date check (KTIJ-35768) ^KTIJ-35777 GitOrigin-RevId: ea7d71f7901cc19462b5d4c0ffbb80bda34e0dc8 --- .../org/jetbrains/tools/model/updater/Main.kt | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt index 857e25f63782..c47206c4f97f 100644 --- a/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt +++ b/plugins/kotlin/util/project-model-updater/src/org/jetbrains/tools/model/updater/Main.kt @@ -100,19 +100,28 @@ fun main(args: Array) { updateCoopRunConfiguration(monorepoRoot, communityRoot) } -private fun regenerateProjectLibraries(dotIdea: Path, libraries: List, resolverSettings: JpsResolverSettings) { +private fun regenerateProjectLibraries(dotIdea: Path, newLibraries: List, resolverSettings: JpsResolverSettings) { val librariesDir = dotIdea.resolve("libraries") - for (it in librariesDir.listDirectoryEntries("kotlinc_*")) { - println("Removing $it") - it.deleteIfExists() - } + val oldLibraries = librariesDir.listDirectoryEntries("kotlinc_*").toMutableSet() - for (library in libraries) { + for (library in newLibraries) { val libraryFileName = library.name.replace("\\W".toRegex(), "_") + ".xml" val xmlFile = librariesDir.resolve(libraryFileName) - println("Writing $xmlFile") + val isRegeneration = oldLibraries.remove(xmlFile) + if (isRegeneration) { + println("Rewriting $xmlFile") + } else { + println("Writing $xmlFile") + } + xmlFile.writeText(library.render(resolverSettings)) } + + // Drop redundant libraries + for (redundantLibrary in oldLibraries) { + println("Removing $redundantLibrary") + redundantLibrary.deleteExisting() + } } private fun updateCoopRunConfiguration(monorepoRoot: Path?, communityRoot: Path) {