Wizard: fix Android SDK path on Windows

#KT-40232 fixed
This commit is contained in:
Ilya Kirillov
2020-07-16 12:58:59 +03:00
parent a153e7fe30
commit fdc06b2c1c
2 changed files with 8 additions and 1 deletions
@@ -9,12 +9,17 @@ import org.jetbrains.kotlin.tools.projectWizard.core.Success
import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult import org.jetbrains.kotlin.tools.projectWizard.core.TaskResult
import org.jetbrains.kotlin.tools.projectWizard.core.computeM import org.jetbrains.kotlin.tools.projectWizard.core.computeM
import org.jetbrains.kotlin.tools.projectWizard.core.safe import org.jetbrains.kotlin.tools.projectWizard.core.safe
import java.io.File
import java.nio.file.Files import java.nio.file.Files
import java.nio.file.Path import java.nio.file.Path
interface FileSystemWizardService : WizardService { interface FileSystemWizardService : WizardService {
fun createFile(path: Path, text: String): TaskResult<Unit> fun createFile(path: Path, text: String): TaskResult<Unit>
fun createDirectory(path: Path): TaskResult<Unit> fun createDirectory(path: Path): TaskResult<Unit>
fun renderPath(path: Path): String {
return path.toString().replace("""\""", """\\""")
}
} }
class OsFileSystemWizardService : FileSystemWizardService, IdeaIndependentWizardService { class OsFileSystemWizardService : FileSystemWizardService, IdeaIndependentWizardService {
@@ -10,6 +10,7 @@ import org.jetbrains.kotlin.tools.projectWizard.core.Context
import org.jetbrains.kotlin.tools.projectWizard.core.Plugin import org.jetbrains.kotlin.tools.projectWizard.core.Plugin
import org.jetbrains.kotlin.tools.projectWizard.core.UNIT_SUCCESS import org.jetbrains.kotlin.tools.projectWizard.core.UNIT_SUCCESS
import org.jetbrains.kotlin.tools.projectWizard.core.checker import org.jetbrains.kotlin.tools.projectWizard.core.checker
import org.jetbrains.kotlin.tools.projectWizard.core.service.FileSystemWizardService
import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.AndroidModuleConfigurator import org.jetbrains.kotlin.tools.projectWizard.moduleConfigurators.AndroidModuleConfigurator
import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase import org.jetbrains.kotlin.tools.projectWizard.phases.GenerationPhase
import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.allIRModules import org.jetbrains.kotlin.tools.projectWizard.plugins.buildSystem.allIRModules
@@ -40,8 +41,9 @@ class AndroidPlugin(context: Context) : Plugin(context) {
withAction { withAction {
if (allIRModules.none { it.originalModule.configurator is AndroidModuleConfigurator }) return@withAction UNIT_SUCCESS if (allIRModules.none { it.originalModule.configurator is AndroidModuleConfigurator }) return@withAction UNIT_SUCCESS
val path = AndroidPlugin::androidSdkPath.settingValue val path = AndroidPlugin::androidSdkPath.settingValue
val fileSystemService = service<FileSystemWizardService>()
GradlePlugin::localProperties.addValues( GradlePlugin::localProperties.addValues(
"sdk.dir" to path "sdk.dir" to fileSystemService.renderPath(path)
) )
} }
} }