From 57133af5f9470345dc683f157e0a42135c4550f8 Mon Sep 17 00:00:00 2001 From: Yan Zhulanow Date: Tue, 22 May 2018 01:54:00 +0300 Subject: [PATCH] Pill: Support Android Studio bunches in "IDEA" run configuration --- buildSrc/src/main/kotlin/pill/plugin.kt | 11 ++++++++++- .../src/main/resources/runConfigurations/JPS_IDEA.xml | 2 +- .../JPS_IDEA_No_ProcessCancelledException.xml | 2 +- 3 files changed, 12 insertions(+), 3 deletions(-) diff --git a/buildSrc/src/main/kotlin/pill/plugin.kt b/buildSrc/src/main/kotlin/pill/plugin.kt index 22074ca638c..e724c95de14 100644 --- a/buildSrc/src/main/kotlin/pill/plugin.kt +++ b/buildSrc/src/main/kotlin/pill/plugin.kt @@ -97,6 +97,7 @@ class JpsCompatiblePlugin : Plugin { private lateinit var platformVersion: String private lateinit var platformBaseNumber: String private lateinit var platformDir: File + private var isAndroidStudioPlatform: Boolean = false private fun initEnvironment(project: Project) { projectDir = project.projectDir @@ -104,6 +105,7 @@ class JpsCompatiblePlugin : Plugin { platformBaseNumber = platformVersion.substringBefore(".", "").takeIf { it.isNotEmpty() } ?: error("Invalid platform version: $platformVersion") platformDir = IntellijRootUtils.getIntellijRootDir(project) + isAndroidStudioPlatform = project.extensions.extraProperties.has("versions.androidStudioRelease") } private fun pill(rootProject: Project) { @@ -165,12 +167,19 @@ class JpsCompatiblePlugin : Plugin { val runConfigurationsDir = File(projectDir, "buildSrc/src/main/resources/runConfigurations") val targetDir = File(projectDir, ".idea/runConfigurations") val platformDirProjectRelative = "\$PROJECT_DIR\$/" + platformDir.toRelativeString(projectDir) + val additionalIdeaArgs = if (isAndroidStudioPlatform) "-Didea.platform.prefix=AndroidStudio" else "" targetDir.mkdirs() + fun substitute(text: String): String { + return text + .replace("\$IDEA_HOME_PATH\$", platformDirProjectRelative) + .replace("\$ADDITIONAL_IDEA_ARGS\$", additionalIdeaArgs) + } + runConfigurationsDir.listFiles() .filter { it.extension == "xml" } - .map { it.name to it.readText().replace("\$IDEA_HOME_PATH\$", platformDirProjectRelative) } + .map { it.name to substitute(it.readText()) } .forEach { File(targetDir, it.first).writeText(it.second) } } diff --git a/buildSrc/src/main/resources/runConfigurations/JPS_IDEA.xml b/buildSrc/src/main/resources/runConfigurations/JPS_IDEA.xml index 99475cfd161..74c75405137 100644 --- a/buildSrc/src/main/resources/runConfigurations/JPS_IDEA.xml +++ b/buildSrc/src/main/resources/runConfigurations/JPS_IDEA.xml @@ -3,7 +3,7 @@