Wizard: create Gradle wrapper
This commit is contained in:
+23
-1
@@ -5,19 +5,24 @@
|
||||
|
||||
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.AnActionEvent
|
||||
import com.intellij.openapi.actionSystem.CommonDataKeys
|
||||
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.vfs.LocalFileSystem
|
||||
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.service.ProjectImportingWizardService
|
||||
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.isGradle
|
||||
import org.jetbrains.plugins.gradle.action.ImportProjectFromScriptAction
|
||||
import org.jetbrains.plugins.gradle.util.GradleConstants
|
||||
import java.nio.file.Path
|
||||
|
||||
class IdeaGradleWizardService(private val project: Project) : ProjectImportingWizardService,
|
||||
@@ -30,7 +35,9 @@ class IdeaGradleWizardService(private val project: Project) : ProjectImportingWi
|
||||
override fun importProject(
|
||||
path: Path,
|
||||
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 dataContext = SimpleDataContext.getSimpleContext(
|
||||
mapOf(
|
||||
@@ -48,4 +55,19 @@ class IdeaGradleWizardService(private val project: Project) : ProjectImportingWi
|
||||
)
|
||||
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