// Copyright 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved. // SPDX-License-Identifier: Apache-2.0 package software.aws.toolkits.gradle.intellij import org.gradle.api.provider.Property import org.gradle.api.provider.Provider import org.gradle.api.provider.ProviderFactory abstract class ToolkitIntelliJExtension(private val providers: ProviderFactory) { abstract val ideFlavor: Property fun ideProfile() = IdeVersions.ideProfile(providers) fun version(): Provider = productProfile().flatMap { profile -> providers.provider { profile.version() } } fun localPath(): Provider = productProfile().flatMap { profile -> providers.provider { profile.localPath() } } fun productProfile(): Provider = ideFlavor.flatMap { flavor -> when (flavor) { IdeFlavor.IC -> ideProfile().map { it.community } IdeFlavor.IU -> ideProfile().map { it.ultimate } IdeFlavor.RD -> ideProfile().map { it.rider } IdeFlavor.GW -> ideProfile().map { it.gateway!! } } } }