Wizard: create Gradle wrapper
This commit is contained in:
+23
-1
@@ -5,19 +5,24 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.tools.projectWizard.wizard.service
|
package org.jetbrains.kotlin.tools.projectWizard.wizard.service
|
||||||
|
|
||||||
|
import com.intellij.execution.executors.DefaultRunExecutor
|
||||||
import com.intellij.openapi.actionSystem.ActionPlaces
|
import com.intellij.openapi.actionSystem.ActionPlaces
|
||||||
import com.intellij.openapi.actionSystem.AnActionEvent
|
import com.intellij.openapi.actionSystem.AnActionEvent
|
||||||
import com.intellij.openapi.actionSystem.CommonDataKeys
|
import com.intellij.openapi.actionSystem.CommonDataKeys
|
||||||
import com.intellij.openapi.actionSystem.impl.SimpleDataContext
|
import com.intellij.openapi.actionSystem.impl.SimpleDataContext
|
||||||
|
import com.intellij.openapi.externalSystem.model.execution.ExternalSystemTaskExecutionSettings
|
||||||
|
import com.intellij.openapi.externalSystem.util.ExternalSystemUtil
|
||||||
import com.intellij.openapi.project.Project
|
import com.intellij.openapi.project.Project
|
||||||
import com.intellij.openapi.vfs.LocalFileSystem
|
import com.intellij.openapi.vfs.LocalFileSystem
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult
|
import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult
|
||||||
|
import org.jetbrains.kotlin.tools.projectWizard.core.andThen
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.safe
|
import org.jetbrains.kotlin.tools.projectWizard.core.safe
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.core.service.ProjectImportingWizardService
|
import org.jetbrains.kotlin.tools.projectWizard.core.service.ProjectImportingWizardService
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.ModuleIR
|
import org.jetbrains.kotlin.tools.projectWizard.ir.buildsystem.ModuleIR
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.BuildSystemType
|
||||||
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle
|
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.isGradle
|
||||||
import org.jetbrains.plugins.gradle.action.ImportProjectFromScriptAction
|
import org.jetbrains.plugins.gradle.action.ImportProjectFromScriptAction
|
||||||
|
import org.jetbrains.plugins.gradle.util.GradleConstants
|
||||||
import java.nio.file.Path
|
import java.nio.file.Path
|
||||||
|
|
||||||
class IdeaGradleWizardService(private val project: Project) : ProjectImportingWizardService,
|
class IdeaGradleWizardService(private val project: Project) : ProjectImportingWizardService,
|
||||||
@@ -30,7 +35,9 @@ class IdeaGradleWizardService(private val project: Project) : ProjectImportingWi
|
|||||||
override fun importProject(
|
override fun importProject(
|
||||||
path: Path,
|
path: Path,
|
||||||
modulesIrs: List<ModuleIR>
|
modulesIrs: List<ModuleIR>
|
||||||
): TaskResult<Unit> = safe {
|
): TaskResult<Unit> = performImport(path) andThen createGradleWrapper(path)
|
||||||
|
|
||||||
|
private fun performImport(path: Path) = safe {
|
||||||
val virtualFile = LocalFileSystem.getInstance().findFileByPath(path.toString())!!
|
val virtualFile = LocalFileSystem.getInstance().findFileByPath(path.toString())!!
|
||||||
val dataContext = SimpleDataContext.getSimpleContext(
|
val dataContext = SimpleDataContext.getSimpleContext(
|
||||||
mapOf(
|
mapOf(
|
||||||
@@ -48,4 +55,19 @@ class IdeaGradleWizardService(private val project: Project) : ProjectImportingWi
|
|||||||
)
|
)
|
||||||
action.actionPerformed(event)
|
action.actionPerformed(event)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private fun createGradleWrapper(path: Path) = safe {
|
||||||
|
val settings = ExternalSystemTaskExecutionSettings().apply {
|
||||||
|
externalProjectPath = path.toString()
|
||||||
|
taskNames = listOf(WRAPPER_TASK_NAME)
|
||||||
|
externalSystemIdString = GradleConstants.SYSTEM_ID.id
|
||||||
|
}
|
||||||
|
|
||||||
|
ExternalSystemUtil.runTask(settings, DefaultRunExecutor.EXECUTOR_ID, project, GradleConstants.SYSTEM_ID)
|
||||||
|
}
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
private const val WRAPPER_TASK_NAME = "wrapper"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Reference in New Issue
Block a user