Skip to content

Commit

Permalink
Add running multiple gradle command functionality
Browse files Browse the repository at this point in the history
  • Loading branch information
enes.zor committed Nov 18, 2024
1 parent dad1214 commit 466faf3
Show file tree
Hide file tree
Showing 2 changed files with 20 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -27,23 +27,28 @@ class ModuleLevelDynamicActionGroup : ActionGroup() {
.readConfigFile(project, "config/Commander/module-tasks.txt")
}

private fun createModuleLevelGradleTaskAction(event: AnActionEvent, task: List<String>): GradleTaskAction {
private fun createModuleLevelGradleTaskAction(event: AnActionEvent, task: Pair<String, String>): 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<String> {
return task.split(" ", limit = MAX_SUBSTRING)
private fun splitTaskName(task: String): Pair<String, String> {
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 = " "
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -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"
)
}

Expand All @@ -52,8 +52,12 @@ class RootLevelDynamicActionGroup : ActionGroup() {
.toMutableList()
}

private fun splitTaskName(task: String): List<String> {
return task.split(" ", limit = MAX_SUBSTRING)
private fun splitTaskName(task: String): Pair<String, String> {
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<TaskModel> {
Expand All @@ -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"
}
Expand Down

0 comments on commit 466faf3

Please sign in to comment.