User: rednesto Date: 13 Jul 24 16:12 Revision: 246c1d5f65e7042b1d42397c8a25d41b9bddf87f Summary: Pass project to finalizers TeamCity URL: https://ci.mcdev.io/viewModification.html?tab=vcsModificationFiles&modId=9430&personal=false Index: src/main/kotlin/creator/custom/CustomPlatformStep.kt =================================================================== --- src/main/kotlin/creator/custom/CustomPlatformStep.kt (revision 40c051478534cc81486e4d1042bc9280c71f2e38) +++ src/main/kotlin/creator/custom/CustomPlatformStep.kt (revision 246c1d5f65e7042b1d42397c8a25d41b9bddf87f) @@ -515,7 +515,7 @@ val finalizers = selectedTemplate.descriptor.finalizers if (!finalizers.isNullOrEmpty()) { - CreatorFinalizer.executeAll(context, finalizers, templateProperties) + CreatorFinalizer.executeAll(context, project, finalizers, templateProperties) } } } Index: src/main/kotlin/creator/custom/finalizers/CreatorFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/CreatorFinalizer.kt (revision 40c051478534cc81486e4d1042bc9280c71f2e38) +++ src/main/kotlin/creator/custom/finalizers/CreatorFinalizer.kt (revision 246c1d5f65e7042b1d42397c8a25d41b9bddf87f) @@ -28,6 +28,7 @@ import com.intellij.openapi.diagnostic.thisLogger import com.intellij.openapi.extensions.ExtensionPointName import com.intellij.openapi.extensions.RequiredElement +import com.intellij.openapi.project.Project import com.intellij.openapi.util.KeyedExtensionCollector import com.intellij.serviceContainer.BaseKeyedLazyInstance import com.intellij.util.KeyedLazyInstance @@ -37,7 +38,12 @@ fun validate(reporter: TemplateValidationReporter, properties: Map) = Unit - fun execute(context: WizardContext, properties: Map, templateProperties: Map) + fun execute( + context: WizardContext, + project: Project, + properties: Map, + templateProperties: Map + ) companion object { private val EP_NAME = @@ -79,6 +85,7 @@ fun executeAll( context: WizardContext, + project: Project, finalizers: List>, templateProperties: Map ) { @@ -93,7 +100,7 @@ val finalizer = COLLECTOR.findSingle(type)!! try { - finalizer.execute(context, properties, templateProperties) + finalizer.execute(context, project, properties, templateProperties) } catch (t: Throwable) { if (t is ControlFlowException) { throw t Index: src/main/kotlin/creator/custom/finalizers/GitAddAllFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/GitAddAllFinalizer.kt (revision 40c051478534cc81486e4d1042bc9280c71f2e38) +++ src/main/kotlin/creator/custom/finalizers/GitAddAllFinalizer.kt (revision 246c1d5f65e7042b1d42397c8a25d41b9bddf87f) @@ -23,10 +23,16 @@ import com.intellij.execution.configurations.GeneralCommandLine import com.intellij.execution.util.ExecUtil import com.intellij.ide.util.projectWizard.WizardContext +import com.intellij.openapi.project.Project class GitAddAllFinalizer : CreatorFinalizer { - override fun execute(context: WizardContext, properties: Map, templateProperties: Map) { + override fun execute( + context: WizardContext, + project: Project, + properties: Map, + templateProperties: Map + ) { ExecUtil.execAndGetOutput(GeneralCommandLine("git", "add", ".").withWorkDirectory(context.projectFileDirectory)) } } Index: src/main/kotlin/creator/custom/finalizers/ImportGradleProjectFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/ImportGradleProjectFinalizer.kt (revision 40c051478534cc81486e4d1042bc9280c71f2e38) +++ src/main/kotlin/creator/custom/finalizers/ImportGradleProjectFinalizer.kt (revision 246c1d5f65e7042b1d42397c8a25d41b9bddf87f) @@ -22,13 +22,18 @@ import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.openapi.diagnostic.thisLogger +import com.intellij.openapi.project.Project import org.jetbrains.plugins.gradle.service.project.open.canLinkAndRefreshGradleProject import org.jetbrains.plugins.gradle.service.project.open.linkAndRefreshGradleProject class ImportGradleProjectFinalizer : CreatorFinalizer { - override fun execute(context: WizardContext, properties: Map, templateProperties: Map) { - val project = context.project!! + override fun execute( + context: WizardContext, + project: Project, + properties: Map, + templateProperties: Map + ) { val projectDir = context.projectFileDirectory val canLink = canLinkAndRefreshGradleProject(projectDir, project, showValidationDialog = false) thisLogger().info("canLink = $canLink projectDir = $projectDir") Index: src/main/kotlin/creator/custom/finalizers/ImportMavenProjectFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/ImportMavenProjectFinalizer.kt (revision 40c051478534cc81486e4d1042bc9280c71f2e38) +++ src/main/kotlin/creator/custom/finalizers/ImportMavenProjectFinalizer.kt (revision 246c1d5f65e7042b1d42397c8a25d41b9bddf87f) @@ -23,6 +23,7 @@ import com.demonwav.mcdev.util.invokeAndWait import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.openapi.diagnostic.thisLogger +import com.intellij.openapi.project.Project import com.intellij.openapi.vfs.VfsUtil import java.nio.file.Path import java.util.concurrent.TimeUnit @@ -30,8 +31,12 @@ class ImportMavenProjectFinalizer : CreatorFinalizer { - override fun execute(context: WizardContext, properties: Map, templateProperties: Map) { - val project = context.project!! + override fun execute( + context: WizardContext, + project: Project, + properties: Map, + templateProperties: Map + ) { val projectDir = context.projectFileDirectory val pomFile = VfsUtil.findFile(Path.of(projectDir).resolve("pom.xml"), true) Index: src/main/kotlin/creator/custom/finalizers/RunGradleTasksFinalizer.kt =================================================================== --- src/main/kotlin/creator/custom/finalizers/RunGradleTasksFinalizer.kt (revision 40c051478534cc81486e4d1042bc9280c71f2e38) +++ src/main/kotlin/creator/custom/finalizers/RunGradleTasksFinalizer.kt (revision 246c1d5f65e7042b1d42397c8a25d41b9bddf87f) @@ -24,6 +24,7 @@ import com.demonwav.mcdev.util.runGradleTaskAndWait import com.intellij.ide.util.projectWizard.WizardContext import com.intellij.openapi.diagnostic.thisLogger +import com.intellij.openapi.project.Project class RunGradleTasksFinalizer : CreatorFinalizer { @@ -38,10 +39,14 @@ } } - override fun execute(context: WizardContext, properties: Map, templateProperties: Map) { + override fun execute( + context: WizardContext, + project: Project, + properties: Map, + templateProperties: Map + ) { @Suppress("UNCHECKED_CAST") val tasks = properties["tasks"] as List - val project = context.project!! val projectDir = context.projectDirectory thisLogger().info("tasks = $tasks projectDir = $projectDir")