From 4c12a4cb117870f7a9f87a50783927842ad6b9c2 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Fri, 16 Feb 2018 00:39:38 +0300 Subject: [PATCH] Pill: Add 'unpill' task --- buildSrc/src/main/kotlin/pill/plugin.kt | 38 +++++++++++++++++++------ 1 file changed, 30 insertions(+), 8 deletions(-) diff --git a/buildSrc/src/main/kotlin/pill/plugin.kt b/buildSrc/src/main/kotlin/pill/plugin.kt index bbfa061c268..57e551ef2c0 100644 --- a/buildSrc/src/main/kotlin/pill/plugin.kt +++ b/buildSrc/src/main/kotlin/pill/plugin.kt @@ -96,7 +96,11 @@ class JpsCompatibleRootPlugin : Plugin { } project.tasks.create("pill") { - this.doLast { pill(project) } + doLast { pill(project) } + } + + project.tasks.create("unpill") { + doLast { unpill(project) } } } @@ -105,24 +109,24 @@ class JpsCompatibleRootPlugin : Plugin { private lateinit var platformBaseNumber: String private lateinit var platformDir: File - private fun pill(project: Project) { + private fun initEnvironment(project: Project) { projectDir = project.projectDir platformVersion = project.extensions.extraProperties.get("versions.intellijSdk").toString() platformBaseNumber = platformVersion.substringBefore(".", "").takeIf { it.isNotEmpty() } ?: error("Invalid platform version: $platformVersion") platformDir = File(projectDir, "buildSrc/prepare-deps/intellij-sdk/build/repo/kotlin.build.custom.deps/$platformVersion") + } + + private fun pill(project: Project) { + initEnvironment(project) val jpsProject = parse(project, ParserContext(dependencyMappers)) .mapLibraries(this::attachPlatformSources, this::attachAsmSources) val files = render(jpsProject, getProjectLibraries(jpsProject)) - File(projectDir, ".idea/libraries").deleteRecursively() - - File(projectDir, ".idea/runConfigurations") - .walk() - .filter { it.name.startsWith("JPS_") && it.extension.toLowerCase() == "xml" } - .forEach { it.delete() } + removeExistingIdeaLibraries() + removeJpsRunConfigurations() copyRunConfigurations() setOptionsForDefaultJunitRunConfiguration(project) @@ -134,6 +138,24 @@ class JpsCompatibleRootPlugin : Plugin { } } + private fun unpill(project: Project) { + initEnvironment(project) + + removeExistingIdeaLibrariesAndModules() + removeJpsRunConfigurations() + } + + private fun removeExistingIdeaLibraries() { + File(projectDir, ".idea/libraries").deleteRecursively() + } + + private fun removeJpsRunConfigurations() { + File(projectDir, ".idea/runConfigurations") + .walk() + .filter { it.name.startsWith("JPS_") && it.extension.toLowerCase() == "xml" } + .forEach { it.delete() } + } + private fun copyRunConfigurations() { val runConfigurationsDir = File(projectDir, "buildSrc/src/main/kotlin/pill/runConfigurations") val targetDir = File(projectDir, ".idea/runConfigurations")