From 466faf3ee0a1b1ce98ed805eb18d4fba1a89b5e8 Mon Sep 17 00:00:00 2001 From: "enes.zor" Date: Mon, 18 Nov 2024 16:13:36 +0300 Subject: [PATCH] Add running multiple gradle command functionality --- .../actions/ModuleLevelDynamicActionGroup.kt | 17 +++++++++++------ .../actions/RootLevelDynamicActionGroup.kt | 15 +++++++++------ 2 files changed, 20 insertions(+), 12 deletions(-) diff --git a/src/main/kotlin/com/github/burkclik/asplugin/actions/ModuleLevelDynamicActionGroup.kt b/src/main/kotlin/com/github/burkclik/asplugin/actions/ModuleLevelDynamicActionGroup.kt index a23bd5d..308464d 100644 --- a/src/main/kotlin/com/github/burkclik/asplugin/actions/ModuleLevelDynamicActionGroup.kt +++ b/src/main/kotlin/com/github/burkclik/asplugin/actions/ModuleLevelDynamicActionGroup.kt @@ -27,23 +27,28 @@ class ModuleLevelDynamicActionGroup : ActionGroup() { .readConfigFile(project, "config/Commander/module-tasks.txt") } - private fun createModuleLevelGradleTaskAction(event: AnActionEvent, task: List): GradleTaskAction { + private fun createModuleLevelGradleTaskAction(event: AnActionEvent, task: Pair): GradleTaskAction { + val (taskName, commands) = task val path: String = event.getData(CommonDataKeys.VIRTUAL_FILE)?.path.orEmpty() val rootPath: String = event.getData(CommonDataKeys.PROJECT)?.basePath.orEmpty().split("/").last() - val gradleTerminalCommand = getModuleTerminalCommand(rootPath = rootPath, modulePath = path, gradleTaskName = task.last()) + val gradleTerminalCommand = + getModuleTerminalCommand(rootPath = rootPath, modulePath = path, gradleTaskName = commands) val moduleName = getModuleName(rootPath, path) return GradleTaskAction( tabName = moduleName, - taskName = task.first(), + taskName = taskName, gradleTerminalCommand = gradleTerminalCommand ) } - private fun splitTaskName(task: String): List { - return task.split(" ", limit = MAX_SUBSTRING) + private fun splitTaskName(task: String): Pair { + val splittedTask = task.split(DELIMITER) + val taskName = splittedTask.first() + val commands = splittedTask.filterIndexed { index, _ -> index > 0 }.joinToString(",") + return taskName to "{$commands}" } companion object { - private const val MAX_SUBSTRING = 2 + const val DELIMITER = " " } } \ No newline at end of file diff --git a/src/main/kotlin/com/github/burkclik/asplugin/actions/RootLevelDynamicActionGroup.kt b/src/main/kotlin/com/github/burkclik/asplugin/actions/RootLevelDynamicActionGroup.kt index 7032b11..0dc221e 100644 --- a/src/main/kotlin/com/github/burkclik/asplugin/actions/RootLevelDynamicActionGroup.kt +++ b/src/main/kotlin/com/github/burkclik/asplugin/actions/RootLevelDynamicActionGroup.kt @@ -37,11 +37,11 @@ class RootLevelDynamicActionGroup : ActionGroup() { } private fun createRootGradleTaskAction(task: TaskModel): GradleTaskAction { - val taskName = splitTaskName((task as GradleTask).name) + val (taskName, commands) = splitTaskName((task as GradleTask).name) return GradleTaskAction( tabName = "root", - taskName = taskName.first(), - gradleTerminalCommand = "./gradlew ${taskName.last()}" + taskName = taskName, + gradleTerminalCommand = "./gradlew $commands" ) } @@ -52,8 +52,12 @@ class RootLevelDynamicActionGroup : ActionGroup() { .toMutableList() } - private fun splitTaskName(task: String): List { - return task.split(" ", limit = MAX_SUBSTRING) + private fun splitTaskName(task: String): Pair { + val splittedTask = task.split(" ") + val taskName = splittedTask.first() + val commands = splittedTask.filterIndexed { index, _ -> index > 0 }.joinToString(" ") + + return taskName to commands } private fun mergeTasks(project: Project): MutableList { @@ -64,7 +68,6 @@ class RootLevelDynamicActionGroup : ActionGroup() { } companion object { - private const val MAX_SUBSTRING = 2 private const val PYTHON_SUFFIX = ".py" private const val COMMANDER_PREFIX = "commander_root" }